In [11]:
%matplotlib inline

import os
import glob
import hdf5_getters
import pickle
import itertools
import numpy as np
from sklearn.decomposition import PCA
import time
import matplotlib.pyplot as plt
from scipy.spatial.distance import euclidean
from sklearn import datasets
import random
from sklearn.cluster import MiniBatchKMeans
from sklearn.metrics.pairwise import euclidean_distances
random.seed(3222)
np.random.seed(3222)

Load data


In [2]:
def get_data(basedir, function, upto=10000, ext='.h5'):
    data = []
    count = 0
    for root, dirs, files in os.walk(basedir):
        files = glob.glob(os.path.join(root,'*'+ext))
        for f in files:
            if count == upto:
                return data
            if count%100 == 0:
                print count,
            h5 = hdf5_getters.open_h5_file_read(f)
            data.append(function(h5))
            h5.close()
            count += 1
    return data

# save as pickle to save time in loading
segments_pitches_1000 = get_data('../MillionSongSubset/data', hdf5_getters.get_segments_pitches, upto=200)
pickle.dump(segments_pitches_1000, open("../MillionSongSubset/pitches1000", "wb"))


0 100

In [3]:
segments_pitches_1000


Out[3]:
[array([[ 0.172,  0.084,  0.086, ...,  0.072,  0.675,  1.   ],
        [ 0.078,  0.093,  0.074, ...,  0.047,  0.081,  0.153],
        [ 0.079,  0.049,  0.032, ...,  0.77 ,  1.   ,  0.245],
        ..., 
        [ 0.283,  0.627,  0.501, ...,  0.222,  0.264,  0.147],
        [ 1.   ,  0.425,  0.623, ...,  0.542,  0.43 ,  0.592],
        [ 0.347,  0.358,  0.493, ...,  0.642,  0.988,  0.524]]),
 array([[ 0.256,  0.296,  0.19 , ...,  0.18 ,  0.236,  1.   ],
        [ 1.   ,  0.798,  0.316, ...,  0.214,  0.292,  0.66 ],
        [ 0.29 ,  0.099,  0.073, ...,  0.077,  0.089,  1.   ],
        ..., 
        [ 0.834,  0.97 ,  0.658, ...,  0.678,  0.757,  0.974],
        [ 0.177,  0.314,  0.712, ...,  1.   ,  0.312,  0.294],
        [ 0.444,  0.347,  0.282, ...,  0.486,  0.697,  0.841]]),
 array([[ 0.138,  0.079,  0.109, ...,  0.306,  1.   ,  0.33 ],
        [ 0.119,  0.069,  0.066, ...,  0.219,  1.   ,  0.187],
        [ 0.057,  0.055,  0.059, ...,  0.158,  1.   ,  0.109],
        ..., 
        [ 0.132,  0.184,  0.426, ...,  0.084,  0.143,  1.   ],
        [ 0.59 ,  0.195,  0.373, ...,  0.582,  1.   ,  0.747],
        [ 0.58 ,  1.   ,  0.546, ...,  0.472,  0.677,  0.868]]),
 array([[ 0.929,  0.798,  0.761, ...,  0.781,  1.   ,  0.975],
        [ 0.476,  0.214,  0.205, ...,  0.482,  1.   ,  0.762],
        [ 1.   ,  0.691,  0.465, ...,  0.063,  0.046,  0.917],
        ..., 
        [ 0.728,  0.318,  0.045, ...,  0.875,  1.   ,  0.032],
        [ 1.   ,  0.985,  0.863, ...,  0.327,  0.301,  0.965],
        [ 0.379,  0.227,  0.217, ...,  0.89 ,  0.84 ,  0.615]]),
 array([[ 1.   ,  0.762,  0.325, ...,  0.307,  0.338,  0.489],
        [ 0.072,  0.084,  0.049, ...,  0.031,  0.027,  0.035],
        [ 0.119,  0.151,  0.08 , ...,  0.052,  0.048,  0.033],
        ..., 
        [ 1.   ,  0.922,  0.371, ...,  0.224,  0.229,  0.364],
        [ 1.   ,  0.695,  0.257, ...,  0.195,  0.446,  0.563],
        [ 1.   ,  0.532,  0.424, ...,  0.365,  0.641,  0.42 ]]),
 array([[ 1.   ,  0.965,  0.94 , ...,  0.552,  0.536,  0.522],
        [ 0.005,  0.01 ,  0.038, ...,  0.003,  0.043,  0.179],
        [ 0.044,  0.017,  0.049, ...,  0.124,  0.021,  0.028],
        ..., 
        [ 0.083,  0.028,  0.022, ...,  1.   ,  0.057,  0.133],
        [ 0.034,  0.021,  0.011, ...,  0.14 ,  0.04 ,  1.   ],
        [ 1.   ,  0.091,  0.11 , ...,  0.711,  0.038,  0.041]]),
 array([[ 0.517,  1.   ,  0.463, ...,  0.217,  0.202,  0.528],
        [ 0.032,  0.037,  0.291, ...,  0.069,  0.037,  0.256],
        [ 0.071,  0.125,  0.164, ...,  0.02 ,  0.014,  0.04 ],
        ..., 
        [ 0.586,  0.218,  0.173, ...,  0.118,  0.19 ,  0.236],
        [ 0.463,  0.632,  0.917, ...,  0.247,  0.412,  0.295],
        [ 0.458,  1.   ,  0.194, ...,  0.117,  0.062,  0.353]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.588,  0.398,  0.177, ...,  0.475,  1.   ,  0.798],
        [ 1.   ,  0.788,  0.371, ...,  0.087,  0.151,  0.811],
        ..., 
        [ 0.888,  0.456,  0.367, ...,  0.313,  0.594,  1.   ],
        [ 0.624,  0.329,  0.252, ...,  0.313,  0.297,  0.595],
        [ 0.374,  0.252,  0.25 , ...,  0.17 ,  0.284,  0.198]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.02 ,  0.017,  0.017, ...,  0.022,  0.024,  0.016],
        [ 0.002,  0.002,  0.003, ...,  0.005,  0.002,  0.001],
        ..., 
        [ 0.053,  0.052,  0.042, ...,  0.073,  0.044,  0.052],
        [ 0.413,  0.323,  0.394, ...,  1.   ,  0.716,  0.91 ],
        [ 0.361,  0.488,  0.364, ...,  1.   ,  0.551,  0.529]]),
 array([[ 0.824,  0.787,  0.897, ...,  0.308,  0.592,  0.508],
        [ 0.728,  1.   ,  0.367, ...,  0.154,  0.27 ,  0.153],
        [ 0.051,  0.064,  0.14 , ...,  1.   ,  0.059,  0.035],
        ..., 
        [ 0.332,  0.045,  0.036, ...,  0.277,  0.085,  0.314],
        [ 0.411,  0.091,  0.124, ...,  0.384,  0.068,  0.101],
        [ 0.758,  0.452,  0.313, ...,  0.816,  0.152,  0.198]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.039,  0.159,  1.   , ...,  0.429,  0.085,  0.048],
        [ 0.06 ,  0.116,  1.   , ...,  0.303,  0.028,  0.024],
        ..., 
        [ 0.077,  0.248,  0.899, ...,  0.17 ,  0.028,  0.433],
        [ 0.074,  0.211,  0.603, ...,  0.117,  0.023,  0.317],
        [ 0.1  ,  0.094,  0.458, ...,  0.081,  0.029,  0.528]]),
 array([[ 0.108,  0.081,  0.2  , ...,  0.058,  0.43 ,  0.435],
        [ 0.176,  0.057,  0.103, ...,  0.112,  0.213,  0.035],
        [ 0.096,  0.055,  0.097, ...,  0.003,  0.008,  0.088],
        ..., 
        [ 0.026,  0.017,  0.019, ...,  0.009,  0.063,  0.253],
        [ 0.379,  0.51 ,  0.212, ...,  0.092,  0.941,  1.   ],
        [ 1.   ,  0.821,  0.384, ...,  0.7  ,  0.931,  0.16 ]]),
 array([[ 0.064,  0.07 ,  0.103, ...,  0.201,  0.146,  0.07 ],
        [ 0.029,  0.026,  0.069, ...,  0.109,  0.091,  0.035],
        [ 0.028,  0.033,  0.083, ...,  0.124,  0.076,  0.025],
        ..., 
        [ 0.047,  0.145,  0.244, ...,  0.093,  0.06 ,  0.064],
        [ 0.534,  0.672,  0.453, ...,  0.329,  0.1  ,  0.252],
        [ 0.018,  0.05 ,  1.   , ...,  0.428,  0.02 ,  0.012]]),
 array([[ 1.   ,  0.872,  0.175, ...,  0.091,  0.071,  0.113],
        [ 0.644,  0.602,  0.658, ...,  0.456,  0.471,  0.707],
        [ 1.   ,  0.714,  0.494, ...,  0.815,  0.878,  0.403],
        ..., 
        [ 0.703,  0.649,  0.902, ...,  0.675,  0.578,  0.729],
        [ 0.664,  0.566,  0.581, ...,  1.   ,  0.545,  0.497],
        [ 0.571,  0.628,  0.584, ...,  0.904,  0.534,  0.545]]),
 array([[ 0.574,  0.668,  0.562, ...,  0.315,  0.448,  0.338],
        [ 0.034,  0.037,  0.032, ...,  0.829,  1.   ,  0.037],
        [ 0.128,  0.037,  0.032, ...,  0.167,  1.   ,  0.707],
        ..., 
        [ 0.149,  0.16 ,  0.184, ...,  0.155,  0.083,  0.319],
        [ 0.151,  0.15 ,  0.311, ...,  0.079,  0.055,  0.315],
        [ 0.124,  0.127,  0.209, ...,  0.139,  0.065,  0.151]]),
 array([[ 0.825,  0.727,  0.775, ...,  0.925,  0.696,  0.735],
        [ 0.048,  0.025,  0.033, ...,  0.04 ,  0.016,  0.008],
        [ 0.068,  0.053,  0.045, ...,  0.089,  0.03 ,  0.156],
        ..., 
        [ 0.101,  0.767,  0.123, ...,  0.064,  0.221,  1.   ],
        [ 0.048,  0.084,  0.083, ...,  0.025,  0.188,  1.   ],
        [ 0.039,  0.052,  0.078, ...,  0.025,  0.115,  1.   ]]),
 array([[ 0.055,  0.062,  0.285, ...,  0.087,  0.053,  0.087],
        [ 0.359,  0.319,  0.416, ...,  0.515,  0.466,  0.579],
        [ 0.641,  0.354,  0.332, ...,  0.424,  0.302,  1.   ],
        ..., 
        [ 0.4  ,  0.459,  0.522, ...,  0.446,  0.194,  0.2  ],
        [ 0.5  ,  0.456,  0.63 , ...,  0.66 ,  0.228,  0.133],
        [ 0.492,  0.324,  0.356, ...,  0.517,  0.283,  0.236]]),
 array([[ 0.996,  1.   ,  0.963, ...,  0.677,  0.618,  0.449],
        [ 0.325,  0.642,  0.639, ...,  0.397,  0.173,  0.238],
        [ 0.399,  0.59 ,  0.676, ...,  1.   ,  0.614,  0.513],
        ..., 
        [ 0.04 ,  0.025,  0.098, ...,  0.191,  1.   ,  0.489],
        [ 0.318,  0.017,  0.051, ...,  0.597,  1.   ,  0.142],
        [ 0.016,  0.01 ,  0.035, ...,  0.07 ,  1.   ,  0.065]]),
 array([[ 0.991,  1.   ,  0.397, ...,  0.717,  0.393,  0.371],
        [ 0.006,  0.004,  0.004, ...,  0.059,  0.006,  0.002],
        [ 0.008,  0.01 ,  0.008, ...,  0.067,  0.017,  0.009],
        ..., 
        [ 0.869,  1.   ,  0.05 , ...,  0.031,  0.046,  0.072],
        [ 0.481,  0.334,  0.369, ...,  0.134,  0.168,  0.509],
        [ 1.   ,  0.929,  0.428, ...,  0.267,  0.34 ,  0.392]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.516,  0.921,  0.358, ...,  0.214,  0.26 ,  0.348],
        [ 1.   ,  0.715,  0.66 , ...,  0.229,  0.32 ,  0.701],
        ..., 
        [ 0.951,  0.802,  0.586, ...,  0.623,  0.888,  0.945],
        [ 0.577,  0.648,  0.534, ...,  0.735,  0.644,  0.562],
        [ 0.868,  0.795,  0.567, ...,  1.   ,  0.766,  0.883]]),
 array([[ 0.563,  0.994,  1.   , ...,  0.513,  0.477,  0.283],
        [ 0.105,  0.168,  0.201, ...,  0.056,  0.098,  0.257],
        [ 0.105,  0.552,  1.   , ...,  0.681,  0.063,  0.129],
        ..., 
        [ 0.437,  0.476,  0.717, ...,  0.56 ,  0.678,  0.844],
        [ 0.339,  0.412,  0.525, ...,  0.521,  0.625,  0.653],
        [ 0.443,  0.435,  0.528, ...,  0.317,  0.221,  0.345]]),
 array([[ 1.   ,  0.786,  0.523, ...,  0.198,  0.257,  0.767],
        [ 0.052,  1.   ,  0.121, ...,  0.003,  0.003,  0.005],
        [ 0.019,  0.077,  0.023, ...,  0.031,  0.003,  0.003],
        ..., 
        [ 0.059,  0.236,  0.285, ...,  0.026,  0.036,  0.031],
        [ 0.11 ,  0.315,  0.735, ...,  0.033,  0.048,  0.064],
        [ 0.397,  0.485,  1.   , ...,  0.195,  0.492,  0.548]]),
 array([[ 0.236,  1.   ,  0.366, ...,  0.202,  0.145,  0.509],
        [ 0.433,  1.   ,  0.373, ...,  0.338,  0.156,  0.242],
        [ 0.866,  1.   ,  0.806, ...,  0.406,  0.241,  0.124],
        ..., 
        [ 0.708,  0.536,  0.413, ...,  0.539,  0.456,  0.982],
        [ 0.767,  0.382,  0.38 , ...,  0.731,  1.   ,  0.835],
        [ 0.529,  0.369,  0.471, ...,  0.636,  0.604,  0.636]]),
 array([[ 0.5  ,  0.722,  0.695, ...,  0.561,  0.474,  1.   ],
        [ 0.53 ,  1.   ,  0.721, ...,  0.431,  0.489,  0.37 ],
        [ 1.   ,  0.288,  0.247, ...,  0.718,  0.573,  0.491],
        ..., 
        [ 0.961,  1.   ,  0.3  , ...,  0.193,  0.436,  0.696],
        [ 1.   ,  0.853,  0.619, ...,  0.342,  0.27 ,  0.28 ],
        [ 0.859,  0.477,  0.552, ...,  0.383,  0.325,  0.36 ]]),
 array([[ 0.843,  0.809,  0.039, ...,  0.012,  0.013,  0.036],
        [ 0.27 ,  0.266,  0.99 , ...,  0.04 ,  0.903,  1.   ],
        [ 1.   ,  0.823,  0.021, ...,  0.766,  0.795,  0.123],
        ..., 
        [ 1.   ,  0.94 ,  0.219, ...,  0.059,  0.245,  0.073],
        [ 0.68 ,  0.504,  0.217, ...,  1.   ,  0.795,  0.25 ],
        [ 0.547,  0.74 ,  0.456, ...,  0.393,  0.493,  0.52 ]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.417,  0.413,  0.345, ...,  0.695,  0.433,  0.434],
        [ 1.   ,  0.838,  0.37 , ...,  0.618,  0.312,  0.271],
        ..., 
        [ 0.201,  0.148,  0.196, ...,  0.465,  0.346,  0.396],
        [ 0.211,  0.142,  0.194, ...,  0.507,  0.359,  0.422],
        [ 0.258,  0.164,  0.215, ...,  0.661,  0.421,  0.545]]),
 array([[ 0.94 ,  0.04 ,  0.033, ...,  0.038,  0.039,  1.   ],
        [ 0.545,  0.568,  1.   , ...,  0.258,  0.223,  0.765],
        [ 0.288,  0.201,  1.   , ...,  0.286,  0.089,  0.135],
        ..., 
        [ 0.445,  0.079,  0.052, ...,  1.   ,  0.302,  0.395],
        [ 0.202,  0.134,  0.181, ...,  1.   ,  0.246,  0.179],
        [ 0.232,  0.193,  0.625, ...,  1.   ,  0.202,  0.156]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.09 ,  0.033,  0.445, ...,  0.049,  0.062,  0.017],
        [ 0.034,  0.13 ,  0.258, ...,  0.344,  0.09 ,  0.019],
        ..., 
        [ 0.166,  0.243,  0.084, ...,  0.159,  0.144,  0.115],
        [ 0.111,  0.355,  0.197, ...,  0.245,  0.097,  0.065],
        [ 0.429,  0.453,  0.22 , ...,  0.133,  0.112,  0.112]]),
 array([[ 0.587,  0.42 ,  1.   , ...,  0.377,  0.144,  0.288],
        [ 0.366,  0.298,  0.922, ...,  0.448,  0.15 ,  0.32 ],
        [ 0.242,  0.4  ,  1.   , ...,  0.419,  0.189,  0.115],
        ..., 
        [ 0.238,  0.44 ,  0.596, ...,  0.196,  0.161,  0.212],
        [ 0.527,  0.53 ,  0.572, ...,  0.365,  0.539,  0.493],
        [ 1.   ,  0.833,  0.805, ...,  0.784,  0.79 ,  0.859]]),
 array([[ 1.   ,  0.96 ,  0.237, ...,  0.076,  0.069,  0.275],
        [ 0.39 ,  0.242,  0.306, ...,  0.142,  0.232,  1.   ],
        [ 0.361,  0.152,  0.187, ...,  0.186,  0.357,  1.   ],
        ..., 
        [ 0.976,  1.   ,  0.125, ...,  0.115,  0.182,  0.931],
        [ 0.489,  0.41 ,  0.52 , ...,  0.147,  0.291,  1.   ],
        [ 0.045,  0.037,  0.075, ...,  0.107,  0.044,  0.097]]),
 array([[ 1.   ,  0.607,  0.286, ...,  0.237,  0.296,  0.302],
        [ 0.012,  0.01 ,  0.01 , ...,  1.   ,  0.285,  0.012],
        [ 0.025,  0.058,  0.644, ...,  1.   ,  0.232,  0.026],
        ..., 
        [ 0.111,  0.219,  1.   , ...,  0.3  ,  0.224,  0.074],
        [ 0.092,  0.055,  0.43 , ...,  1.   ,  0.274,  0.055],
        [ 0.599,  1.   ,  0.604, ...,  0.145,  0.07 ,  0.046]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.052,  0.104,  0.484, ...,  1.   ,  0.061,  0.016],
        [ 0.01 ,  0.009,  0.046, ...,  1.   ,  0.082,  0.006],
        ..., 
        [ 1.   ,  0.414,  0.596, ...,  0.67 ,  0.475,  0.63 ],
        [ 0.82 ,  0.68 ,  0.647, ...,  0.732,  0.761,  0.764],
        [ 0.44 ,  0.603,  0.708, ...,  0.896,  0.763,  0.546]]),
 array([[ 0.405,  0.267,  0.188, ...,  0.285,  0.262,  0.123],
        [ 0.754,  1.   ,  0.492, ...,  0.12 ,  0.156,  0.625],
        [ 0.885,  1.   ,  0.512, ...,  0.074,  0.082,  0.587],
        ..., 
        [ 0.012,  0.012,  0.13 , ...,  0.088,  1.   ,  0.025],
        [ 0.005,  0.004,  0.105, ...,  0.118,  1.   ,  0.022],
        [ 0.013,  0.009,  0.072, ...,  0.042,  1.   ,  0.095]]),
 array([[ 0.915,  1.   ,  0.797, ...,  0.66 ,  0.602,  0.299],
        [ 0.165,  0.222,  0.219, ...,  1.   ,  0.576,  0.141],
        [ 0.495,  0.846,  0.256, ...,  1.   ,  0.818,  0.147],
        ..., 
        [ 0.128,  0.291,  0.054, ...,  0.07 ,  0.075,  0.064],
        [ 1.   ,  0.835,  0.367, ...,  0.172,  0.271,  0.53 ],
        [ 0.169,  0.295,  0.313, ...,  0.125,  0.16 ,  0.19 ]]),
 array([[ 0.189,  0.219,  0.212, ...,  0.476,  0.877,  0.2  ],
        [ 1.   ,  0.896,  0.179, ...,  0.508,  0.785,  0.106],
        [ 1.   ,  0.73 ,  0.708, ...,  0.527,  0.584,  0.411],
        ..., 
        [ 0.473,  0.123,  0.08 , ...,  0.084,  0.237,  1.   ],
        [ 1.   ,  0.263,  0.061, ...,  0.029,  0.057,  0.345],
        [ 1.   ,  0.811,  0.136, ...,  0.131,  0.569,  0.171]]),
 array([[ 0.111,  0.105,  0.181, ...,  0.139,  0.081,  0.193],
        [ 0.332,  0.674,  0.488, ...,  0.214,  0.157,  1.   ],
        [ 0.156,  0.173,  0.303, ...,  0.172,  0.175,  1.   ],
        ..., 
        [ 0.523,  0.448,  0.666, ...,  0.394,  0.351,  0.483],
        [ 0.868,  0.919,  0.857, ...,  0.717,  0.77 ,  0.824],
        [ 0.085,  0.136,  0.108, ...,  0.15 ,  1.   ,  0.163]]),
 array([[ 0.998,  0.653,  0.48 , ...,  0.178,  0.634,  0.092],
        [ 1.   ,  0.929,  0.644, ...,  0.914,  0.699,  0.459],
        [ 0.952,  1.   ,  0.463, ...,  0.417,  0.429,  0.545],
        ..., 
        [ 0.573,  0.783,  0.265, ...,  0.651,  0.321,  0.298],
        [ 0.812,  0.674,  0.234, ...,  0.368,  0.337,  0.412],
        [ 0.822,  1.   ,  0.37 , ...,  0.144,  0.157,  0.26 ]]),
 array([[ 0.516,  0.512,  0.61 , ...,  0.634,  0.612,  0.349],
        [ 0.849,  1.   ,  0.952, ...,  0.688,  0.821,  0.786],
        [ 0.564,  0.925,  0.859, ...,  0.522,  0.475,  0.411],
        ..., 
        [ 0.583,  0.69 ,  0.712, ...,  0.992,  0.602,  0.388],
        [ 0.614,  0.728,  0.773, ...,  1.   ,  0.401,  0.168],
        [ 0.747,  0.764,  0.826, ...,  0.43 ,  0.588,  1.   ]]),
 array([[ 1.   ,  0.957,  0.691, ...,  0.473,  0.466,  0.297],
        [ 0.425,  0.943,  0.409, ...,  0.287,  0.617,  0.875],
        [ 0.5  ,  0.559,  0.409, ...,  0.39 ,  0.478,  0.978],
        ..., 
        [ 0.009,  0.02 ,  0.025, ...,  0.008,  0.213,  1.   ],
        [ 0.051,  0.052,  0.089, ...,  0.015,  0.199,  1.   ],
        [ 0.614,  0.522,  0.548, ...,  0.434,  1.   ,  0.667]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.196,  0.26 ,  0.77 , ...,  0.306,  0.141,  0.138],
        [ 0.129,  0.167,  0.369, ...,  0.191,  1.   ,  0.378],
        ..., 
        [ 0.17 ,  1.   ,  0.514, ...,  0.273,  0.4  ,  0.211],
        [ 0.311,  1.   ,  0.243, ...,  0.291,  0.528,  0.511],
        [ 0.544,  0.964,  0.586, ...,  0.388,  0.512,  0.671]]),
 array([[ 0.966,  1.   ,  0.282, ...,  0.395,  0.343,  0.383],
        [ 0.668,  1.   ,  0.373, ...,  0.096,  0.17 ,  0.432],
        [ 0.2  ,  0.604,  0.502, ...,  0.4  ,  0.142,  0.071],
        ..., 
        [ 0.672,  0.819,  0.277, ...,  0.165,  0.224,  0.731],
        [ 0.29 ,  0.809,  0.769, ...,  0.086,  0.093,  0.192],
        [ 0.094,  0.098,  0.028, ...,  0.034,  0.027,  0.035]]),
 array([[ 0.363,  0.243,  0.117, ...,  0.332,  1.   ,  0.912],
        [ 0.069,  0.026,  0.08 , ...,  0.039,  0.05 ,  0.571],
        [ 0.046,  0.016,  0.034, ...,  0.031,  0.035,  0.428],
        ..., 
        [ 0.012,  0.013,  0.101, ...,  0.014,  0.066,  0.067],
        [ 0.011,  0.012,  0.098, ...,  0.019,  0.082,  0.081],
        [ 0.057,  0.045,  0.138, ...,  0.061,  0.288,  0.384]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.01 ,  0.035,  0.018, ...,  0.01 ,  0.009,  0.023],
        [ 0.013,  0.018,  0.027, ...,  0.011,  0.01 ,  0.037],
        ..., 
        [ 0.04 ,  0.028,  0.028, ...,  0.017,  0.096,  1.   ],
        [ 0.07 ,  0.035,  0.049, ...,  0.039,  0.096,  0.681],
        [ 0.074,  0.045,  0.07 , ...,  0.053,  0.103,  0.658]]),
 array([[ 1.   ,  0.714,  0.66 , ...,  0.407,  0.357,  0.301],
        [ 0.014,  0.088,  0.026, ...,  1.   ,  0.137,  0.042],
        [ 0.121,  0.066,  0.029, ...,  0.076,  0.077,  1.   ],
        ..., 
        [ 0.079,  0.021,  0.034, ...,  0.028,  0.065,  0.224],
        [ 0.528,  0.293,  0.233, ...,  0.14 ,  0.268,  0.961],
        [ 0.029,  0.01 ,  0.014, ...,  0.024,  0.048,  0.146]]),
 array([[ 0.254,  0.304,  0.351, ...,  0.299,  0.144,  0.158],
        [ 0.171,  0.618,  0.821, ...,  0.13 ,  0.153,  0.146],
        [ 0.288,  0.421,  0.589, ...,  0.151,  0.113,  0.109],
        ..., 
        [ 0.275,  0.044,  0.105, ...,  0.046,  0.08 ,  0.105],
        [ 0.551,  0.037,  0.044, ...,  0.043,  0.086,  0.169],
        [ 0.313,  0.022,  0.034, ...,  0.031,  0.034,  0.069]]),
 array([[ 0.977,  1.   ,  0.974, ...,  0.721,  0.78 ,  0.802],
        [ 0.147,  0.042,  0.488, ...,  0.118,  1.   ,  0.694],
        [ 0.149,  0.055,  0.489, ...,  0.182,  1.   ,  0.577],
        ..., 
        [ 0.073,  0.057,  0.261, ...,  0.363,  0.174,  0.109],
        [ 0.256,  0.221,  0.539, ...,  0.45 ,  0.415,  0.345],
        [ 0.257,  0.197,  0.208, ...,  0.297,  0.271,  0.201]]),
 array([[ 0.496,  0.527,  0.599, ...,  0.515,  0.529,  0.633],
        [ 0.63 ,  0.775,  0.719, ...,  0.716,  0.814,  0.93 ],
        [ 0.648,  0.776,  0.725, ...,  0.732,  0.844,  0.938],
        ..., 
        [ 0.106,  0.08 ,  0.188, ...,  0.052,  0.041,  0.068],
        [ 0.107,  0.041,  0.067, ...,  0.033,  0.023,  0.031],
        [ 0.226,  0.16 ,  0.334, ...,  0.098,  0.085,  0.149]]),
 array([[ 1.   ,  0.04 ,  0.016, ...,  0.593,  0.085,  0.224],
        [ 0.586,  0.028,  0.015, ...,  1.   ,  0.052,  0.099],
        [ 0.666,  0.043,  0.027, ...,  1.   ,  0.091,  0.188],
        ..., 
        [ 0.024,  0.057,  0.114, ...,  1.   ,  0.035,  0.021],
        [ 0.071,  0.135,  0.256, ...,  1.   ,  0.063,  0.058],
        [ 0.066,  0.106,  0.269, ...,  1.   ,  0.085,  0.054]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.209,  1.   ,  0.513, ...,  0.167,  0.734,  0.123],
        [ 0.144,  0.196,  0.216, ...,  0.523,  1.   ,  0.037],
        ..., 
        [ 0.111,  0.084,  0.142, ...,  0.229,  1.   ,  0.41 ],
        [ 0.322,  0.424,  0.496, ...,  0.606,  0.579,  0.291],
        [ 0.208,  0.189,  0.296, ...,  0.194,  1.   ,  0.47 ]]),
 array([[ 0.647,  0.753,  0.375, ...,  0.975,  0.829,  0.179],
        [ 0.06 ,  0.51 ,  1.   , ...,  0.589,  0.176,  0.044],
        [ 1.   ,  0.354,  0.221, ...,  0.191,  0.06 ,  0.288],
        ..., 
        [ 1.   ,  0.52 ,  0.101, ...,  0.027,  0.104,  0.346],
        [ 0.609,  1.   ,  0.19 , ...,  0.318,  0.456,  0.08 ],
        [ 0.219,  0.234,  0.511, ...,  0.583,  0.509,  0.479]]),
 array([[ 1.   ,  0.841,  0.298, ...,  0.128,  0.157,  0.425],
        [ 0.01 ,  0.017,  0.007, ...,  0.819,  0.155,  0.029],
        [ 0.019,  0.008,  0.006, ...,  0.016,  0.152,  1.   ],
        ..., 
        [ 0.046,  0.217,  0.032, ...,  0.031,  0.012,  0.064],
        [ 0.077,  0.15 ,  0.132, ...,  0.11 ,  0.014,  0.143],
        [ 0.108,  0.432,  0.09 , ...,  0.166,  0.02 ,  0.066]]),
 array([[ 0.146,  0.197,  0.09 , ...,  0.156,  0.216,  0.149],
        [ 0.059,  0.035,  0.02 , ...,  0.035,  0.064,  0.124],
        [ 0.383,  0.473,  0.515, ...,  0.207,  0.142,  0.697],
        ..., 
        [ 0.215,  0.432,  1.   , ...,  0.386,  0.253,  0.185],
        [ 0.849,  0.833,  0.118, ...,  0.944,  1.   ,  0.039],
        [ 0.989,  0.335,  0.445, ...,  0.841,  0.469,  1.   ]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.839,  0.169,  0.189, ...,  0.935,  1.   ,  0.353],
        [ 1.   ,  0.15 ,  0.087, ...,  0.082,  0.127,  0.531],
        ..., 
        [ 0.571,  0.2  ,  0.372, ...,  0.818,  0.344,  1.   ],
        [ 0.338,  0.408,  0.389, ...,  0.712,  1.   ,  0.931],
        [ 0.267,  0.331,  0.293, ...,  0.335,  0.665,  1.   ]]),
 array([[ 0.01 ,  0.01 ,  0.016, ...,  0.009,  0.016,  0.019],
        [ 0.165,  1.   ,  0.091, ...,  0.249,  0.183,  0.018],
        [ 0.463,  1.   ,  0.217, ...,  0.133,  0.066,  0.024],
        ..., 
        [ 0.141,  1.   ,  0.102, ...,  0.055,  0.461,  0.058],
        [ 0.083,  0.42 ,  0.053, ...,  0.044,  0.417,  0.044],
        [ 0.315,  0.768,  0.179, ...,  0.078,  1.   ,  0.121]]),
 array([[ 0.858,  0.963,  0.932, ...,  0.619,  0.696,  0.702],
        [ 0.022,  0.029,  1.   , ...,  0.204,  0.181,  0.022],
        [ 1.   ,  0.781,  0.384, ...,  0.47 ,  0.435,  0.4  ],
        ..., 
        [ 1.   ,  0.688,  0.494, ...,  0.192,  0.131,  0.675],
        [ 0.17 ,  0.29 ,  0.434, ...,  0.376,  0.069,  0.086],
        [ 1.   ,  0.224,  0.175, ...,  0.478,  0.467,  0.387]]),
 array([[ 0.106,  0.239,  0.268, ...,  0.657,  0.182,  0.06 ],
        [ 0.073,  0.226,  1.   , ...,  0.051,  0.022,  0.017],
        [ 0.398,  0.296,  0.099, ...,  0.072,  0.217,  0.021],
        ..., 
        [ 0.696,  0.127,  0.021, ...,  0.563,  1.   ,  0.115],
        [ 0.235,  0.044,  0.059, ...,  0.144,  0.183,  1.   ],
        [ 0.113,  0.103,  0.153, ...,  0.168,  0.141,  0.231]]),
 array([[ 1.   ,  0.947,  0.44 , ...,  0.295,  0.31 ,  0.419],
        [ 1.   ,  0.215,  0.385, ...,  0.358,  0.337,  0.346],
        [ 0.882,  0.533,  0.686, ...,  0.658,  0.56 ,  0.483],
        ..., 
        [ 0.186,  0.144,  0.242, ...,  0.106,  0.132,  0.338],
        [ 0.377,  0.594,  1.   , ...,  0.451,  0.604,  0.464],
        [ 0.287,  0.479,  0.691, ...,  0.393,  0.515,  0.394]]),
 array([[ 0.445,  0.294,  0.303, ...,  0.245,  1.   ,  0.496],
        [ 0.404,  0.263,  0.161, ...,  0.175,  1.   ,  0.292],
        [ 0.682,  0.864,  0.673, ...,  0.592,  1.   ,  0.313],
        ..., 
        [ 0.219,  0.08 ,  0.043, ...,  0.038,  0.08 ,  1.   ],
        [ 0.182,  0.058,  0.069, ...,  0.041,  0.081,  1.   ],
        [ 0.181,  0.063,  0.068, ...,  0.05 ,  0.1  ,  1.   ]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.059,  0.082,  0.623, ...,  0.33 ,  0.123,  0.051],
        [ 0.111,  0.167,  1.   , ...,  0.176,  0.076,  0.065],
        ..., 
        [ 0.03 ,  0.063,  1.   , ...,  0.11 ,  0.029,  0.007],
        [ 0.049,  0.097,  1.   , ...,  0.062,  0.018,  0.005],
        [ 0.098,  0.255,  1.   , ...,  0.182,  0.081,  0.053]]),
 array([[ 0.083,  0.105,  0.127, ...,  0.012,  0.013,  0.267],
        [ 0.114,  0.253,  0.194, ...,  0.073,  0.214,  0.463],
        [ 0.036,  0.064,  0.059, ...,  0.019,  0.029,  0.129],
        ..., 
        [ 0.095,  0.507,  0.172, ...,  1.   ,  0.462,  0.253],
        [ 0.345,  0.613,  0.23 , ...,  0.991,  1.   ,  0.619],
        [ 0.155,  0.3  ,  0.144, ...,  1.   ,  0.675,  0.219]]),
 array([[ 1.   ,  0.797,  0.148, ...,  0.103,  0.087,  0.127],
        [ 0.397,  1.   ,  0.014, ...,  0.004,  0.004,  0.078],
        [ 0.004,  0.002,  0.007, ...,  0.12 ,  0.018,  0.006],
        ..., 
        [ 0.237,  1.   ,  0.238, ...,  0.062,  0.082,  0.196],
        [ 0.118,  0.188,  0.088, ...,  1.   ,  0.129,  0.175],
        [ 0.367,  0.428,  0.227, ...,  0.65 ,  0.129,  1.   ]]),
 array([[ 0.205,  0.513,  0.248, ...,  0.038,  0.069,  0.123],
        [ 0.347,  0.535,  0.49 , ...,  0.364,  0.46 ,  0.277],
        [ 0.251,  0.263,  0.404, ...,  0.296,  0.722,  0.299],
        ..., 
        [ 0.289,  0.554,  0.801, ...,  0.524,  0.529,  0.386],
        [ 0.57 ,  0.653,  0.866, ...,  0.415,  0.816,  1.   ],
        [ 0.563,  0.563,  0.787, ...,  0.655,  0.947,  0.966]]),
 array([[ 0.57 ,  0.783,  1.   , ...,  0.323,  0.429,  0.52 ],
        [ 0.18 ,  0.232,  0.471, ...,  1.   ,  0.524,  0.177],
        [ 0.189,  0.216,  0.171, ...,  0.695,  0.281,  0.285],
        ..., 
        [ 0.418,  0.406,  1.   , ...,  0.509,  0.2  ,  0.248],
        [ 0.412,  0.399,  1.   , ...,  0.511,  0.135,  0.111],
        [ 0.334,  0.264,  0.435, ...,  0.412,  0.325,  0.28 ]]),
 array([[ 1.   ,  0.645,  0.619, ...,  0.29 ,  0.213,  0.033],
        [ 0.847,  0.745,  0.511, ...,  0.968,  1.   ,  0.688],
        [ 0.269,  0.201,  0.151, ...,  0.235,  0.155,  0.173],
        ..., 
        [ 0.014,  0.099,  0.019, ...,  1.   ,  0.45 ,  0.079],
        [ 0.008,  0.056,  0.01 , ...,  1.   ,  0.27 ,  0.01 ],
        [ 0.007,  0.014,  0.002, ...,  1.   ,  0.01 ,  0.002]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.394,  0.112,  0.717, ...,  0.152,  0.016,  0.04 ],
        [ 0.089,  0.734,  0.103, ...,  0.803,  0.17 ,  0.065],
        ..., 
        [ 1.   ,  0.725,  0.035, ...,  0.21 ,  0.691,  0.311],
        [ 1.   ,  0.498,  0.053, ...,  0.033,  0.271,  0.05 ],
        [ 0.376,  0.426,  0.336, ...,  0.106,  0.13 ,  0.14 ]]),
 array([[ 1.   ,  0.609,  0.509, ...,  0.435,  0.568,  0.36 ],
        [ 0.707,  1.   ,  0.416, ...,  0.144,  0.146,  0.229],
        [ 0.809,  1.   ,  0.433, ...,  0.534,  0.472,  0.812],
        ..., 
        [ 1.   ,  0.669,  0.635, ...,  0.362,  0.427,  0.329],
        [ 1.   ,  0.912,  0.554, ...,  0.302,  0.257,  0.474],
        [ 1.   ,  0.813,  0.247, ...,  0.21 ,  0.323,  0.444]]),
 array([[ 1.   ,  0.559,  0.273, ...,  0.168,  0.268,  0.539],
        [ 1.   ,  0.75 ,  0.667, ...,  0.311,  0.814,  0.679],
        [ 1.   ,  0.58 ,  0.317, ...,  0.454,  0.617,  0.975],
        ..., 
        [ 0.525,  0.32 ,  0.259, ...,  0.3  ,  0.218,  0.595],
        [ 0.428,  0.384,  0.318, ...,  0.558,  0.966,  0.572],
        [ 0.602,  0.586,  0.583, ...,  0.517,  0.602,  0.443]]),
 array([[ 0.755,  1.   ,  0.699, ...,  0.321,  0.315,  0.461],
        [ 0.608,  1.   ,  0.095, ...,  0.088,  0.098,  0.285],
        [ 0.146,  1.   ,  0.008, ...,  0.005,  0.01 ,  0.006],
        ..., 
        [ 0.657,  0.187,  0.167, ...,  0.202,  0.215,  0.215],
        [ 0.094,  0.04 ,  0.022, ...,  0.033,  0.019,  0.044],
        [ 0.444,  0.879,  0.628, ...,  0.544,  0.371,  0.43 ]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.007,  0.014,  0.006, ...,  1.   ,  0.095,  0.019],
        [ 0.074,  0.289,  0.054, ...,  1.   ,  0.212,  0.103],
        ..., 
        [ 0.026,  0.419,  0.046, ...,  1.   ,  0.154,  0.03 ],
        [ 0.031,  0.206,  0.038, ...,  1.   ,  0.089,  0.071],
        [ 0.011,  0.099,  0.01 , ...,  1.   ,  0.025,  0.031]]),
 array([[ 1.   ,  0.753,  0.602, ...,  0.824,  0.972,  0.925],
        [ 0.333,  1.   ,  0.068, ...,  0.145,  0.147,  0.113],
        [ 0.416,  1.   ,  0.043, ...,  0.095,  0.426,  0.33 ],
        ..., 
        [ 1.   ,  0.84 ,  0.795, ...,  0.149,  0.065,  0.723],
        [ 0.859,  0.885,  0.873, ...,  0.091,  0.07 ,  0.949],
        [ 0.816,  0.708,  0.997, ...,  0.602,  0.545,  0.894]]),
 array([[ 0.423,  0.216,  0.12 , ...,  0.892,  0.823,  0.868],
        [ 0.523,  0.72 ,  0.661, ...,  0.309,  0.269,  0.743],
        [ 0.136,  0.867,  0.088, ...,  0.026,  0.029,  0.048],
        ..., 
        [ 0.124,  0.124,  0.093, ...,  1.   ,  0.346,  0.153],
        [ 0.31 ,  0.313,  0.509, ...,  0.138,  0.192,  0.754],
        [ 0.099,  0.148,  0.174, ...,  0.286,  0.437,  0.307]]),
 array([[ 0.501,  0.16 ,  0.474, ...,  0.25 ,  0.969,  1.   ],
        [ 1.   ,  0.069,  0.05 , ...,  0.352,  0.161,  0.146],
        [ 1.   ,  0.124,  0.048, ...,  0.766,  0.04 ,  0.018],
        ..., 
        [ 0.317,  0.039,  0.033, ...,  0.298,  0.111,  1.   ],
        [ 0.447,  0.099,  0.093, ...,  0.312,  0.149,  1.   ],
        [ 0.41 ,  0.057,  0.063, ...,  0.323,  0.189,  1.   ]]),
 array([[ 0.543,  0.59 ,  0.762, ...,  0.941,  0.82 ,  0.94 ],
        [ 0.647,  0.545,  0.605, ...,  0.679,  0.553,  1.   ],
        [ 0.785,  1.   ,  0.816, ...,  0.727,  0.883,  0.695],
        ..., 
        [ 0.478,  0.315,  1.   , ...,  0.363,  0.265,  0.305],
        [ 0.33 ,  0.602,  1.   , ...,  0.496,  0.293,  0.232],
        [ 0.557,  0.464,  0.541, ...,  1.   ,  0.753,  0.648]]),
 array([[ 1.   ,  0.721,  0.677, ...,  0.758,  0.604,  0.756],
        [ 1.   ,  0.041,  0.034, ...,  0.017,  0.031,  0.07 ],
        [ 0.244,  0.015,  0.011, ...,  0.018,  0.004,  0.007],
        ..., 
        [ 0.399,  0.108,  0.195, ...,  0.955,  0.178,  0.085],
        [ 0.367,  0.114,  0.222, ...,  1.   ,  0.116,  0.102],
        [ 0.625,  0.873,  1.   , ...,  0.842,  0.255,  0.369]]),
 array([[ 1.   ,  0.947,  0.802, ...,  0.918,  0.843,  0.758],
        [ 0.562,  0.572,  0.894, ...,  0.516,  1.   ,  0.793],
        [ 0.895,  0.5  ,  0.96 , ...,  1.   ,  0.91 ,  0.838],
        ..., 
        [ 0.15 ,  0.32 ,  0.72 , ...,  0.781,  1.   ,  0.989],
        [ 0.087,  0.174,  1.   , ...,  0.3  ,  0.388,  0.282],
        [ 0.324,  0.259,  0.433, ...,  0.392,  1.   ,  0.443]]),
 array([[ 0.062,  0.052,  0.047, ...,  0.601,  0.416,  0.244],
        [ 0.031,  0.029,  0.01 , ...,  1.   ,  0.261,  0.042],
        [ 0.398,  0.519,  0.36 , ...,  0.874,  1.   ,  0.312],
        ..., 
        [ 0.025,  0.214,  1.   , ...,  0.074,  0.012,  0.006],
        [ 0.215,  0.81 ,  1.   , ...,  0.109,  0.028,  0.017],
        [ 0.012,  0.124,  1.   , ...,  0.1  ,  0.011,  0.006]]),
 array([[ 0.636,  0.47 ,  0.429, ...,  1.   ,  0.927,  0.263],
        [ 0.266,  0.255,  0.248, ...,  0.335,  0.497,  1.   ],
        [ 0.097,  1.   ,  0.095, ...,  0.083,  0.07 ,  0.151],
        ..., 
        [ 1.   ,  0.748,  0.628, ...,  0.198,  0.159,  0.771],
        [ 0.129,  0.071,  0.059, ...,  1.   ,  0.298,  0.175],
        [ 0.051,  0.09 ,  0.159, ...,  0.087,  0.072,  0.047]]),
 array([[ 0.883,  0.725,  1.   , ...,  0.736,  0.76 ,  0.621],
        [ 0.263,  1.   ,  0.817, ...,  0.389,  0.782,  0.233],
        [ 0.961,  1.   ,  0.556, ...,  0.431,  0.384,  0.358],
        ..., 
        [ 0.646,  0.488,  0.655, ...,  0.437,  0.425,  0.226],
        [ 0.521,  0.354,  0.407, ...,  0.382,  0.35 ,  0.142],
        [ 1.   ,  0.863,  0.711, ...,  0.495,  0.472,  0.263]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.011,  0.047,  1.   , ...,  0.066,  0.005,  0.006],
        [ 0.041,  0.06 ,  1.   , ...,  0.063,  0.043,  0.067],
        ..., 
        [ 0.243,  0.324,  1.   , ...,  0.273,  0.124,  0.323],
        [ 0.151,  0.109,  0.45 , ...,  0.2  ,  0.31 ,  0.325],
        [ 0.136,  0.985,  1.   , ...,  0.197,  0.158,  0.24 ]]),
 array([[ 0.098,  0.114,  0.079, ...,  1.   ,  0.331,  0.15 ],
        [ 0.043,  0.085,  0.06 , ...,  1.   ,  0.255,  0.085],
        [ 0.24 ,  0.412,  0.3  , ...,  0.796,  0.376,  0.133],
        ..., 
        [ 0.307,  0.249,  0.194, ...,  0.239,  0.269,  0.57 ],
        [ 0.161,  0.363,  0.219, ...,  0.319,  0.249,  0.196],
        [ 0.087,  0.234,  0.134, ...,  0.068,  0.091,  0.119]]),
 array([[ 0.15 ,  0.066,  0.093, ...,  0.655,  1.   ,  0.447],
        [ 0.352,  0.047,  0.032, ...,  0.041,  0.2  ,  1.   ],
        [ 0.464,  0.082,  0.062, ...,  0.773,  1.   ,  0.02 ],
        ..., 
        [ 1.   ,  0.499,  0.161, ...,  0.266,  0.368,  0.045],
        [ 0.482,  0.334,  0.944, ...,  1.   ,  0.619,  0.549],
        [ 0.278,  0.263,  0.401, ...,  0.811,  1.   ,  0.361]]),
 array([[ 0.143,  0.151,  0.142, ...,  0.045,  0.19 ,  0.312],
        [ 1.   ,  0.149,  0.034, ...,  0.024,  0.04 ,  0.629],
        [ 1.   ,  0.121,  0.035, ...,  0.01 ,  0.015,  0.537],
        ..., 
        [ 0.103,  0.431,  1.   , ...,  0.378,  0.055,  0.061],
        [ 0.084,  0.308,  0.825, ...,  1.   ,  0.055,  0.052],
        [ 0.218,  0.361,  0.998, ...,  1.   ,  0.154,  0.209]]),
 array([[ 0.95 ,  0.836,  0.139, ...,  0.716,  1.   ,  0.067],
        [ 0.2  ,  1.   ,  0.082, ...,  0.681,  0.15 ,  0.214],
        [ 0.285,  0.235,  0.029, ...,  0.476,  1.   ,  0.95 ],
        ..., 
        [ 0.661,  0.661,  0.423, ...,  0.515,  0.574,  0.505],
        [ 0.881,  0.863,  0.455, ...,  1.   ,  0.629,  0.793],
        [ 0.913,  0.901,  0.423, ...,  1.   ,  0.575,  0.944]]),
 array([[ 1.   ,  0.875,  0.217, ...,  0.207,  0.187,  0.28 ],
        [ 0.682,  0.103,  1.   , ...,  0.986,  0.293,  0.114],
        [ 0.47 ,  0.088,  0.903, ...,  1.   ,  0.275,  0.083],
        ..., 
        [ 0.042,  0.04 ,  0.076, ...,  0.29 ,  1.   ,  0.133],
        [ 0.639,  0.442,  0.2  , ...,  1.   ,  0.999,  0.137],
        [ 0.404,  0.274,  1.   , ...,  0.819,  0.558,  0.325]]),
 array([[ 0.919,  1.   ,  0.972, ...,  0.586,  0.591,  0.55 ],
        [ 0.03 ,  0.081,  0.015, ...,  1.   ,  0.118,  0.022],
        [ 0.041,  0.121,  0.033, ...,  1.   ,  0.413,  0.066],
        ..., 
        [ 0.009,  0.119,  1.   , ...,  0.038,  0.009,  0.007],
        [ 0.007,  0.114,  1.   , ...,  0.042,  0.009,  0.01 ],
        [ 0.007,  0.049,  1.   , ...,  0.022,  0.008,  0.005]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.326,  0.122,  0.23 , ...,  0.23 ,  0.168,  0.194],
        [ 0.238,  0.239,  0.224, ...,  0.187,  0.21 ,  0.338],
        ..., 
        [ 0.205,  0.186,  0.579, ...,  0.419,  0.21 ,  0.21 ],
        [ 0.159,  0.198,  0.683, ...,  0.248,  0.142,  0.207],
        [ 0.071,  0.217,  1.   , ...,  0.587,  0.132,  0.139]]),
 array([[ 1.   ,  0.892,  0.82 , ...,  0.615,  0.511,  0.449],
        [ 0.291,  0.299,  0.199, ...,  0.447,  0.283,  0.422],
        [ 1.   ,  0.636,  0.294, ...,  0.097,  0.13 ,  0.3  ],
        ..., 
        [ 0.647,  0.485,  1.   , ...,  0.382,  0.779,  0.524],
        [ 1.   ,  0.735,  0.23 , ...,  0.202,  0.372,  0.271],
        [ 0.726,  0.436,  0.13 , ...,  0.206,  1.   ,  0.946]]),
 array([[ 0.285,  0.251,  0.279, ...,  0.207,  0.982,  1.   ],
        [ 0.222,  0.179,  0.33 , ...,  0.087,  0.128,  0.083],
        [ 0.877,  0.682,  0.327, ...,  0.943,  1.   ,  0.021],
        ..., 
        [ 0.207,  0.882,  0.885, ...,  0.023,  0.025,  0.013],
        [ 0.789,  1.   ,  0.647, ...,  0.205,  0.237,  0.57 ],
        [ 0.167,  0.2  ,  0.181, ...,  0.067,  0.072,  0.072]]),
 array([[ 1.   ,  0.953,  0.914, ...,  0.592,  0.492,  0.469],
        [ 0.056,  0.005,  0.004, ...,  0.018,  0.03 ,  0.008],
        [ 0.583,  0.058,  0.013, ...,  0.041,  0.059,  0.148],
        ..., 
        [ 0.575,  0.101,  0.039, ...,  0.06 ,  0.073,  0.231],
        [ 0.156,  0.049,  0.025, ...,  0.084,  0.035,  0.063],
        [ 0.12 ,  0.002,  0.005, ...,  0.014,  0.002,  0.003]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.051,  0.081,  0.084, ...,  0.166,  0.09 ,  0.055],
        [ 0.224,  0.848,  0.848, ...,  0.012,  0.009,  0.034],
        ..., 
        [ 0.282,  0.459,  0.744, ...,  0.316,  0.356,  0.382],
        [ 0.198,  0.308,  0.497, ...,  0.2  ,  0.255,  0.224],
        [ 0.455,  0.329,  0.551, ...,  0.31 ,  0.846,  0.961]]),
 array([[ 0.394,  0.499,  0.529, ...,  0.713,  0.522,  0.383],
        [ 0.885,  0.044,  1.   , ...,  0.022,  0.028,  0.068],
        [ 0.155,  0.014,  1.   , ...,  0.044,  0.009,  0.013],
        ..., 
        [ 0.7  ,  0.004,  0.01 , ...,  0.001,  0.003,  1.   ],
        [ 0.194,  0.002,  0.003, ...,  0.003,  0.068,  1.   ],
        [ 0.042,  0.038,  0.03 , ...,  0.01 ,  0.018,  1.   ]]),
 array([[ 0.958,  1.   ,  0.723, ...,  0.243,  0.203,  0.748],
        [ 0.334,  0.599,  1.   , ...,  0.487,  0.307,  0.22 ],
        [ 0.078,  0.098,  0.124, ...,  0.661,  0.145,  0.02 ],
        ..., 
        [ 0.138,  0.239,  1.   , ...,  0.25 ,  0.053,  0.183],
        [ 0.116,  0.268,  0.446, ...,  0.497,  0.313,  0.308],
        [ 0.872,  0.929,  0.988, ...,  0.929,  0.901,  0.91 ]]),
 array([[ 0.546,  0.474,  0.502, ...,  1.   ,  0.904,  0.64 ],
        [ 0.177,  0.069,  0.365, ...,  0.112,  0.103,  0.091],
        [ 0.882,  1.   ,  0.034, ...,  0.004,  0.003,  0.115],
        ..., 
        [ 0.192,  0.177,  0.179, ...,  1.   ,  0.357,  0.357],
        [ 0.272,  0.178,  0.035, ...,  1.   ,  0.754,  0.052],
        [ 0.502,  0.587,  0.938, ...,  0.685,  0.677,  0.533]]),
 array([[ 0.408,  0.403,  0.295, ...,  0.446,  0.987,  1.   ],
        [ 0.868,  0.666,  0.395, ...,  0.821,  1.   ,  0.474],
        [ 0.724,  0.808,  0.93 , ...,  0.707,  0.935,  0.429],
        ..., 
        [ 0.383,  0.569,  0.876, ...,  0.605,  0.365,  0.416],
        [ 0.381,  0.178,  1.   , ...,  0.592,  0.095,  0.18 ],
        [ 0.785,  0.673,  0.818, ...,  0.769,  0.649,  0.588]]),
 array([[ 0.465,  0.602,  0.873, ...,  0.99 ,  0.695,  0.336],
        [ 0.33 ,  0.337,  0.479, ...,  0.307,  0.143,  0.235],
        [ 0.144,  0.157,  0.36 , ...,  0.093,  0.081,  0.125],
        ..., 
        [ 0.304,  0.236,  0.458, ...,  0.319,  0.322,  0.609],
        [ 0.584,  0.163,  0.163, ...,  0.306,  0.117,  0.138],
        [ 0.28 ,  0.245,  0.403, ...,  0.312,  0.23 ,  0.346]]),
 array([[ 0.31 ,  0.478,  0.308, ...,  0.72 ,  0.457,  0.258],
        [ 0.724,  1.   ,  0.117, ...,  0.214,  0.106,  0.325],
        [ 1.   ,  0.719,  0.29 , ...,  0.203,  0.163,  0.717],
        ..., 
        [ 0.053,  0.017,  0.013, ...,  0.017,  0.04 ,  1.   ],
        [ 0.929,  0.579,  0.466, ...,  0.385,  0.451,  0.715],
        [ 0.02 ,  0.012,  0.004, ...,  0.004,  0.022,  1.   ]]),
 array([[ 0.63 ,  0.566,  0.5  , ...,  1.   ,  0.556,  0.62 ],
        [ 0.046,  0.083,  0.056, ...,  0.86 ,  0.063,  0.043],
        [ 0.64 ,  0.138,  0.045, ...,  1.   ,  0.391,  0.045],
        ..., 
        [ 0.733,  0.1  ,  0.035, ...,  0.724,  1.   ,  0.683],
        [ 1.   ,  0.152,  0.092, ...,  0.076,  0.707,  0.401],
        [ 0.269,  0.208,  0.643, ...,  0.469,  1.   ,  0.786]]),
 array([[ 0.512,  0.43 ,  0.428, ...,  0.405,  0.897,  1.   ],
        [ 0.916,  0.676,  0.135, ...,  0.177,  0.142,  0.237],
        [ 0.47 ,  0.492,  0.109, ...,  0.123,  0.205,  0.233],
        ..., 
        [ 0.042,  0.026,  0.015, ...,  0.052,  0.028,  0.058],
        [ 0.341,  0.196,  0.104, ...,  1.   ,  0.316,  0.446],
        [ 0.094,  0.104,  0.11 , ...,  1.   ,  0.35 ,  0.291]]),
 array([[ 0.965,  1.   ,  0.614, ...,  0.497,  0.559,  0.844],
        [ 0.061,  0.032,  0.066, ...,  0.072,  0.083,  0.384],
        [ 0.106,  0.01 ,  0.016, ...,  0.551,  0.049,  0.023],
        ..., 
        [ 0.313,  0.721,  0.447, ...,  0.585,  0.194,  0.475],
        [ 0.257,  0.212,  0.214, ...,  0.093,  0.129,  0.306],
        [ 0.296,  0.341,  0.232, ...,  1.   ,  0.402,  0.29 ]]),
 array([[ 1.   ,  0.908,  0.76 , ...,  0.497,  0.367,  0.131],
        [ 0.16 ,  0.157,  0.17 , ...,  0.574,  0.36 ,  0.172],
        [ 0.839,  0.376,  0.225, ...,  0.092,  0.146,  1.   ],
        ..., 
        [ 1.   ,  0.261,  0.066, ...,  0.049,  0.097,  0.929],
        [ 0.496,  0.052,  0.053, ...,  0.013,  0.016,  1.   ],
        [ 0.488,  0.216,  0.241, ...,  0.044,  0.033,  1.   ]]),
 array([[ 0.927,  0.755,  0.82 , ...,  0.571,  0.468,  0.53 ],
        [ 0.057,  0.115,  1.   , ...,  0.574,  0.036,  0.039],
        [ 0.089,  1.   ,  0.284, ...,  0.097,  0.139,  0.041],
        ..., 
        [ 0.092,  0.136,  1.   , ...,  0.876,  0.07 ,  0.077],
        [ 0.438,  0.801,  0.353, ...,  0.287,  0.304,  0.329],
        [ 0.309,  0.549,  0.733, ...,  0.453,  0.258,  0.275]]),
 array([[ 0.659,  0.903,  0.501, ...,  1.   ,  0.662,  0.665],
        [ 0.772,  0.559,  0.462, ...,  0.827,  1.   ,  0.557],
        [ 0.275,  0.242,  0.212, ...,  1.   ,  0.837,  0.283],
        ..., 
        [ 0.495,  0.527,  0.563, ...,  0.636,  0.541,  0.618],
        [ 0.42 ,  0.496,  0.542, ...,  0.98 ,  0.971,  0.695],
        [ 0.357,  0.398,  0.304, ...,  0.817,  0.697,  0.515]]),
 array([[ 0.658,  0.411,  0.517, ...,  0.379,  0.893,  1.   ],
        [ 1.   ,  0.719,  0.431, ...,  0.694,  0.614,  0.53 ],
        [ 0.697,  0.449,  0.431, ...,  0.432,  0.314,  1.   ],
        ..., 
        [ 0.655,  1.   ,  0.747, ...,  0.581,  0.477,  0.208],
        [ 0.428,  0.082,  0.12 , ...,  0.342,  0.065,  0.15 ],
        [ 1.   ,  0.243,  0.281, ...,  0.428,  0.264,  0.476]]),
 array([[ 0.075,  0.034,  0.045, ...,  0.056,  0.147,  0.555],
        [ 0.081,  0.035,  0.038, ...,  0.063,  0.384,  0.706],
        [ 0.187,  0.083,  0.057, ...,  0.152,  0.449,  1.   ],
        ..., 
        [ 0.018,  0.006,  0.004, ...,  0.11 ,  0.147,  0.089],
        [ 0.005,  0.006,  0.002, ...,  0.303,  0.185,  0.072],
        [ 0.035,  0.02 ,  0.013, ...,  0.202,  0.16 ,  0.167]]),
 array([[ 0.143,  0.422,  0.238, ...,  0.611,  0.202,  0.289],
        [ 0.113,  0.223,  0.129, ...,  1.   ,  0.065,  0.058],
        [ 0.005,  0.028,  0.003, ...,  1.   ,  0.078,  0.023],
        ..., 
        [ 0.286,  0.395,  1.   , ...,  0.171,  0.059,  0.329],
        [ 0.02 ,  0.119,  0.111, ...,  0.977,  0.026,  0.058],
        [ 0.983,  1.   ,  0.69 , ...,  0.117,  0.2  ,  0.692]]),
 array([[ 0.872,  1.   ,  0.939, ...,  0.508,  0.674,  0.553],
        [ 0.556,  0.629,  0.419, ...,  0.471,  0.495,  0.442],
        [ 0.292,  0.385,  0.155, ...,  0.213,  0.193,  0.176],
        ..., 
        [ 0.934,  0.875,  0.855, ...,  0.978,  0.974,  0.825],
        [ 0.749,  0.886,  0.788, ...,  0.881,  1.   ,  0.954],
        [ 0.78 ,  0.758,  0.705, ...,  1.   ,  0.766,  0.696]]),
 array([[ 1.   ,  0.472,  0.095, ...,  0.058,  0.095,  0.374],
        [ 1.   ,  0.022,  0.005, ...,  0.004,  0.004,  0.071],
        [ 1.   ,  0.047,  0.011, ...,  0.004,  0.009,  0.08 ],
        ..., 
        [ 1.   ,  0.154,  0.066, ...,  0.017,  0.016,  0.123],
        [ 1.   ,  0.081,  0.08 , ...,  0.015,  0.015,  0.034],
        [ 1.   ,  0.11 ,  0.123, ...,  0.05 ,  0.052,  0.07 ]]),
 array([[ 1.   ,  0.987,  0.664, ...,  0.525,  0.474,  0.276],
        [ 0.17 ,  0.11 ,  0.905, ...,  0.181,  0.049,  0.067],
        [ 0.538,  0.066,  1.   , ...,  0.55 ,  0.041,  0.093],
        ..., 
        [ 0.513,  1.   ,  0.438, ...,  0.311,  0.327,  0.102],
        [ 0.065,  0.524,  0.075, ...,  1.   ,  0.216,  0.091],
        [ 0.003,  0.072,  0.003, ...,  1.   ,  0.012,  0.02 ]]),
 array([[ 1.   ,  0.912,  0.841, ...,  0.703,  0.624,  0.576],
        [ 0.558,  1.   ,  0.552, ...,  0.233,  0.799,  0.485],
        [ 0.797,  1.   ,  0.384, ...,  0.144,  0.176,  0.495],
        ..., 
        [ 0.051,  0.059,  0.058, ...,  0.287,  0.099,  0.108],
        [ 0.137,  0.118,  0.146, ...,  0.185,  0.188,  0.202],
        [ 0.114,  0.08 ,  0.088, ...,  1.   ,  0.406,  0.177]]),
 array([[ 0.01 ,  0.013,  0.081, ...,  0.009,  0.01 ,  0.172],
        [ 0.003,  0.006,  0.012, ...,  0.003,  0.001,  0.053],
        [ 0.028,  0.021,  0.05 , ...,  0.022,  0.032,  0.214],
        ..., 
        [ 0.517,  0.402,  0.287, ...,  0.041,  0.046,  1.   ],
        [ 0.027,  0.02 ,  0.159, ...,  0.019,  0.017,  0.887],
        [ 0.007,  0.007,  0.056, ...,  0.005,  0.004,  0.456]]),
 array([[ 0.537,  0.22 ,  0.202, ...,  0.579,  0.571,  1.   ],
        [ 0.516,  0.417,  0.413, ...,  0.454,  0.529,  0.436],
        [ 0.6  ,  0.332,  0.461, ...,  0.411,  0.618,  1.   ],
        ..., 
        [ 1.   ,  0.53 ,  0.419, ...,  0.107,  0.067,  0.483],
        [ 0.42 ,  0.219,  0.249, ...,  0.333,  0.199,  0.289],
        [ 0.497,  0.2  ,  0.291, ...,  0.384,  0.369,  0.459]]),
 array([[ 1.   ,  0.817,  0.651, ...,  0.27 ,  0.301,  0.091],
        [ 0.83 ,  1.   ,  0.471, ...,  0.106,  0.05 ,  0.12 ],
        [ 0.074,  0.071,  0.213, ...,  0.182,  0.266,  0.099],
        ..., 
        [ 0.458,  1.   ,  0.553, ...,  0.094,  0.097,  0.017],
        [ 0.175,  0.167,  0.486, ...,  0.047,  0.047,  0.039],
        [ 0.376,  0.365,  0.708, ...,  0.392,  0.462,  0.298]]),
 array([[ 0.93 ,  1.   ,  0.135, ...,  0.189,  0.41 ,  0.017],
        [ 0.686,  0.248,  0.091, ...,  0.559,  1.   ,  0.045],
        [ 0.266,  0.629,  0.45 , ...,  0.627,  0.132,  0.05 ],
        ..., 
        [ 0.095,  1.   ,  0.132, ...,  0.005,  0.002,  0.013],
        [ 1.   ,  0.314,  0.102, ...,  0.086,  0.128,  0.453],
        [ 1.   ,  0.555,  0.18 , ...,  0.186,  0.596,  0.341]]),
 array([[ 0.852,  0.566,  0.379, ...,  0.254,  0.527,  1.   ],
        [ 0.084,  0.071,  0.155, ...,  0.027,  0.057,  0.097],
        [ 0.024,  0.203,  1.   , ...,  0.04 ,  0.03 ,  0.03 ],
        ..., 
        [ 0.145,  1.   ,  0.304, ...,  0.048,  0.065,  0.047],
        [ 0.36 ,  1.   ,  0.486, ...,  0.084,  0.187,  0.126],
        [ 0.231,  0.252,  0.24 , ...,  0.29 ,  0.254,  0.163]]),
 array([[ 0.755,  1.   ,  0.604, ...,  0.746,  0.548,  0.024],
        [ 0.312,  0.742,  0.253, ...,  1.   ,  0.52 ,  0.087],
        [ 0.804,  0.942,  0.386, ...,  1.   ,  0.442,  0.169],
        ..., 
        [ 0.615,  0.849,  0.712, ...,  0.076,  0.028,  0.207],
        [ 0.521,  0.072,  0.055, ...,  0.094,  0.11 ,  1.   ],
        [ 0.476,  0.579,  0.606, ...,  1.   ,  0.608,  0.386]]),
 array([[ 0.695,  0.602,  0.397, ...,  1.   ,  0.441,  0.463],
        [ 0.157,  0.039,  0.059, ...,  0.184,  0.066,  0.06 ],
        [ 0.15 ,  0.019,  0.027, ...,  0.229,  0.027,  0.024],
        ..., 
        [ 0.597,  0.854,  1.   , ...,  0.337,  0.477,  0.362],
        [ 0.253,  0.185,  0.173, ...,  0.256,  0.121,  0.276],
        [ 0.24 ,  0.419,  0.456, ...,  0.477,  0.362,  0.229]]),
 array([[ 0.981,  1.   ,  0.748, ...,  0.5  ,  0.533,  0.669],
        [ 0.109,  0.053,  1.   , ...,  0.308,  0.136,  0.053],
        [ 0.05 ,  0.093,  0.141, ...,  0.047,  0.192,  0.038],
        ..., 
        [ 0.034,  0.024,  0.397, ...,  1.   ,  0.273,  0.054],
        [ 0.293,  0.119,  1.   , ...,  0.708,  0.211,  0.249],
        [ 0.336,  0.454,  0.979, ...,  1.   ,  0.251,  0.216]]),
 array([[ 0.963,  1.   ,  0.632, ...,  0.55 ,  0.512,  0.671],
        [ 0.672,  1.   ,  0.78 , ...,  0.32 ,  0.153,  0.581],
        [ 0.989,  0.878,  0.692, ...,  0.764,  0.592,  0.304],
        ..., 
        [ 0.428,  0.401,  0.689, ...,  1.   ,  0.503,  0.198],
        [ 0.07 ,  0.104,  1.   , ...,  0.143,  0.034,  0.019],
        [ 0.779,  1.   ,  0.797, ...,  0.524,  0.57 ,  0.506]]),
 array([[ 0.986,  0.949,  0.872, ...,  1.   ,  0.818,  0.992],
        [ 0.054,  0.039,  0.027, ...,  0.017,  0.015,  0.154],
        [ 0.046,  0.15 ,  0.016, ...,  0.007,  0.021,  0.191],
        ..., 
        [ 0.154,  0.143,  0.091, ...,  0.081,  0.081,  0.149],
        [ 0.736,  0.337,  0.169, ...,  0.091,  0.049,  1.   ],
        [ 0.015,  0.018,  0.021, ...,  0.074,  0.047,  0.077]]),
 array([[ 0.015,  0.022,  0.016, ...,  1.   ,  0.124,  0.025],
        [ 0.02 ,  0.038,  0.021, ...,  1.   ,  0.142,  0.077],
        [ 0.119,  0.129,  0.042, ...,  1.   ,  0.374,  0.223],
        ..., 
        [ 1.   ,  0.565,  0.33 , ...,  0.039,  0.225,  0.084],
        [ 0.06 ,  0.166,  0.076, ...,  1.   ,  0.204,  0.088],
        [ 0.768,  0.594,  0.404, ...,  1.   ,  0.683,  0.659]]),
 array([[ 0.795,  1.   ,  0.463, ...,  0.453,  0.457,  0.66 ],
        [ 0.9  ,  1.   ,  0.324, ...,  0.104,  0.132,  0.481],
        [ 0.428,  0.388,  0.473, ...,  0.223,  0.389,  0.224],
        ..., 
        [ 0.006,  0.008,  0.015, ...,  0.009,  0.35 ,  0.011],
        [ 0.01 ,  0.01 ,  0.102, ...,  0.021,  0.494,  0.022],
        [ 0.033,  0.015,  0.089, ...,  0.036,  0.739,  0.051]]),
 array([[ 1.   ,  0.771,  0.529, ...,  0.188,  0.343,  0.133],
        [ 0.07 ,  0.018,  0.015, ...,  0.045,  0.115,  1.   ],
        [ 0.065,  0.038,  0.014, ...,  0.032,  0.044,  0.986],
        ..., 
        [ 0.045,  0.192,  0.376, ...,  0.097,  0.344,  0.116],
        [ 0.447,  0.24 ,  0.138, ...,  0.412,  0.3  ,  0.974],
        [ 0.29 ,  0.294,  0.127, ...,  0.233,  0.324,  0.837]]),
 array([[ 0.598,  0.915,  0.392, ...,  0.31 ,  0.264,  0.39 ],
        [ 0.842,  0.568,  0.266, ...,  0.162,  0.107,  1.   ],
        [ 0.021,  0.017,  0.019, ...,  1.   ,  0.295,  0.022],
        ..., 
        [ 0.073,  0.08 ,  0.174, ...,  0.244,  0.076,  0.065],
        [ 0.755,  0.616,  0.537, ...,  0.589,  0.459,  1.   ],
        [ 0.12 ,  0.131,  0.144, ...,  0.429,  0.268,  0.179]]),
 array([[ 0.705,  0.992,  1.   , ...,  0.831,  0.6  ,  0.58 ],
        [ 0.321,  0.743,  0.21 , ...,  0.661,  0.738,  0.161],
        [ 0.423,  1.   ,  0.551, ...,  0.544,  0.371,  0.202],
        ..., 
        [ 0.119,  0.267,  0.142, ...,  0.373,  0.56 ,  0.14 ],
        [ 0.43 ,  0.554,  0.517, ...,  0.462,  0.664,  0.436],
        [ 0.701,  0.803,  0.684, ...,  0.64 ,  0.948,  0.814]]),
 array([[ 1.   ,  0.725,  0.02 , ...,  0.012,  0.024,  0.037],
        [ 1.   ,  0.433,  0.397, ...,  0.416,  0.544,  0.434],
        [ 0.023,  0.176,  0.065, ...,  1.   ,  0.301,  0.041],
        ..., 
        [ 0.105,  0.077,  0.038, ...,  0.055,  0.009,  0.015],
        [ 0.015,  0.087,  0.051, ...,  0.007,  0.01 ,  0.126],
        [ 0.163,  0.146,  0.363, ...,  0.535,  0.229,  0.354]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.292,  0.193,  1.   , ...,  0.566,  0.432,  0.289],
        [ 0.343,  0.211,  0.624, ...,  0.445,  0.628,  1.   ],
        ..., 
        [ 1.   ,  0.959,  0.457, ...,  0.8  ,  0.883,  0.603],
        [ 0.751,  0.596,  0.777, ...,  0.453,  1.   ,  0.924],
        [ 0.185,  0.121,  0.194, ...,  0.33 ,  1.   ,  0.84 ]]),
 array([[ 0.992,  0.601,  0.059, ...,  0.062,  0.104,  1.   ],
        [ 0.382,  0.02 ,  0.002, ...,  0.402,  0.027,  0.008],
        [ 0.323,  0.014,  0.004, ...,  0.57 ,  1.   ,  0.063],
        ..., 
        [ 0.204,  0.035,  0.001, ...,  0.267,  0.027,  0.01 ],
        [ 0.786,  0.034,  0.003, ...,  0.65 ,  0.038,  0.03 ],
        [ 0.625,  0.059,  0.003, ...,  0.161,  0.025,  0.014]]),
 array([[ 0.049,  0.074,  0.138, ...,  0.069,  0.553,  0.027],
        [ 0.115,  0.102,  0.192, ...,  0.253,  1.   ,  0.406],
        [ 0.087,  0.056,  0.045, ...,  0.033,  0.515,  0.078],
        ..., 
        [ 1.   ,  0.305,  0.156, ...,  0.196,  0.105,  0.203],
        [ 1.   ,  0.323,  0.148, ...,  0.246,  0.104,  0.141],
        [ 0.191,  0.154,  0.151, ...,  0.216,  0.151,  0.1  ]]),
 array([[ 0.353,  0.269,  0.346, ...,  0.23 ,  0.158,  0.333],
        [ 0.001,  0.001,  0.007, ...,  0.001,  0.001,  0.002],
        [ 0.001,  0.001,  0.009, ...,  0.006,  0.002,  0.004],
        ..., 
        [ 0.416,  0.101,  0.107, ...,  0.111,  0.075,  0.116],
        [ 0.228,  0.1  ,  0.109, ...,  0.125,  0.052,  0.115],
        [ 0.225,  0.153,  0.111, ...,  0.149,  0.085,  0.081]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.458,  0.529,  0.348, ...,  1.   ,  0.664,  0.511],
        [ 0.899,  0.224,  0.162, ...,  0.45 ,  0.064,  0.1  ],
        ..., 
        [ 1.   ,  0.25 ,  0.237, ...,  0.081,  0.306,  0.533],
        [ 0.486,  0.087,  0.428, ...,  0.307,  0.177,  0.118],
        [ 1.   ,  0.914,  0.995, ...,  0.716,  0.683,  0.682]]),
 array([[ 0.677,  0.821,  0.957, ...,  0.946,  0.995,  1.   ],
        [ 0.147,  0.266,  1.   , ...,  0.285,  0.17 ,  0.305],
        [ 0.084,  0.497,  1.   , ...,  0.224,  0.133,  0.333],
        ..., 
        [ 0.217,  0.101,  0.41 , ...,  0.154,  0.083,  0.249],
        [ 0.154,  0.13 ,  0.281, ...,  0.287,  0.126,  0.261],
        [ 0.175,  0.375,  0.256, ...,  0.258,  0.258,  0.252]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.402,  0.117,  0.145, ...,  0.182,  0.284,  1.   ],
        [ 0.011,  0.012,  0.176, ...,  1.   ,  0.013,  0.386],
        ..., 
        [ 0.043,  0.008,  0.009, ...,  1.   ,  0.022,  0.024],
        [ 0.046,  0.012,  0.322, ...,  1.   ,  0.014,  0.026],
        [ 0.092,  0.059,  0.137, ...,  0.558,  0.019,  0.054]]),
 array([[ 1.   ,  0.902,  0.75 , ...,  0.765,  0.716,  0.458],
        [ 0.149,  0.481,  0.133, ...,  0.736,  0.166,  0.179],
        [ 0.169,  0.232,  0.247, ...,  0.569,  0.453,  0.198],
        ..., 
        [ 0.296,  0.201,  0.2  , ...,  0.05 ,  0.149,  1.   ],
        [ 0.042,  0.036,  0.028, ...,  0.026,  0.084,  1.   ],
        [ 0.585,  0.544,  0.53 , ...,  0.138,  0.494,  1.   ]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.172,  0.753,  0.686, ...,  0.943,  0.131,  0.077],
        [ 0.117,  0.712,  1.   , ...,  0.973,  0.106,  0.456],
        ..., 
        [ 0.059,  0.056,  0.103, ...,  0.036,  0.104,  0.034],
        [ 0.02 ,  0.027,  0.041, ...,  0.014,  0.043,  0.013],
        [ 0.217,  0.176,  0.182, ...,  0.292,  0.225,  0.159]]),
 array([[ 0.557,  0.36 ,  0.15 , ...,  0.356,  0.135,  0.083],
        [ 1.   ,  0.753,  0.719, ...,  0.414,  0.576,  0.556],
        [ 0.586,  0.671,  1.   , ...,  0.299,  0.07 ,  0.296],
        ..., 
        [ 0.109,  0.058,  0.479, ...,  0.132,  0.206,  0.048],
        [ 1.   ,  0.381,  0.736, ...,  0.238,  0.379,  0.384],
        [ 0.755,  0.825,  0.729, ...,  0.851,  1.   ,  0.283]]),
 array([[ 0.018,  0.013,  0.008, ...,  1.   ,  0.273,  0.027],
        [ 0.183,  0.062,  0.043, ...,  0.913,  0.642,  0.24 ],
        [ 0.116,  0.21 ,  0.054, ...,  1.   ,  0.394,  0.772],
        ..., 
        [ 0.107,  1.   ,  0.05 , ...,  0.158,  0.037,  0.152],
        [ 0.041,  1.   ,  0.076, ...,  0.035,  0.009,  0.133],
        [ 0.305,  1.   ,  0.342, ...,  0.07 ,  0.024,  0.126]]),
 array([[ 0.482,  1.   ,  0.533, ...,  0.013,  0.016,  0.199],
        [ 0.03 ,  0.058,  0.008, ...,  0.003,  0.002,  0.01 ],
        [ 0.277,  0.26 ,  0.098, ...,  0.024,  0.033,  0.205],
        ..., 
        [ 0.561,  0.598,  0.532, ...,  0.521,  0.555,  1.   ],
        [ 0.306,  0.131,  0.076, ...,  0.172,  0.189,  0.846],
        [ 0.767,  0.714,  0.135, ...,  0.04 ,  0.074,  1.   ]]),
 array([[ 0.936,  0.822,  0.59 , ...,  0.93 ,  0.639,  0.017],
        [ 0.264,  0.182,  0.214, ...,  0.308,  0.31 ,  0.303],
        [ 0.149,  0.262,  1.   , ...,  0.102,  0.106,  0.074],
        ..., 
        [ 0.752,  0.712,  0.581, ...,  0.291,  0.396,  0.311],
        [ 0.541,  0.897,  1.   , ...,  0.339,  0.447,  0.304],
        [ 0.16 ,  0.117,  0.363, ...,  0.141,  0.211,  0.464]]),
 array([[ 0.645,  0.61 ,  0.538, ...,  0.302,  0.941,  1.   ],
        [ 0.566,  0.592,  0.596, ...,  0.653,  0.735,  1.   ],
        [ 0.744,  0.558,  0.541, ...,  0.666,  0.82 ,  1.   ],
        ..., 
        [ 0.646,  1.   ,  0.446, ...,  0.506,  0.501,  0.639],
        [ 0.212,  1.   ,  0.508, ...,  0.207,  0.235,  0.25 ],
        [ 0.353,  0.375,  0.391, ...,  0.516,  0.306,  0.388]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.972,  0.61 ,  0.444, ...,  0.888,  0.395,  1.   ],
        [ 0.192,  0.11 ,  0.099, ...,  0.921,  1.   ,  0.361],
        ..., 
        [ 0.355,  0.077,  0.049, ...,  0.033,  0.025,  0.441],
        [ 0.075,  0.098,  0.05 , ...,  0.167,  0.132,  0.113],
        [ 0.149,  0.148,  0.171, ...,  1.   ,  0.287,  0.076]]),
 array([[ 0.777,  1.   ,  0.856, ...,  0.867,  0.762,  0.496],
        [ 0.131,  0.005,  0.02 , ...,  0.007,  0.012,  0.003],
        [ 0.326,  0.011,  0.031, ...,  0.016,  0.048,  0.012],
        ..., 
        [ 1.   ,  0.111,  0.272, ...,  0.137,  0.021,  0.122],
        [ 1.   ,  0.214,  0.799, ...,  0.182,  0.073,  0.133],
        [ 1.   ,  0.344,  0.335, ...,  0.144,  0.091,  0.175]]),
 array([[ 0.038,  0.027,  0.017, ...,  0.312,  0.093,  0.046],
        [ 0.104,  0.427,  0.875, ...,  0.03 ,  0.036,  0.058],
        [ 0.007,  0.008,  0.013, ...,  0.271,  0.144,  0.025],
        ..., 
        [ 0.941,  0.731,  0.204, ...,  0.938,  0.911,  0.045],
        [ 0.338,  0.39 ,  0.377, ...,  0.422,  0.412,  0.449],
        [ 0.262,  0.323,  0.087, ...,  1.   ,  0.372,  0.203]]),
 array([[ 0.58 ,  0.477,  0.324, ...,  0.952,  0.764,  0.144],
        [ 1.   ,  0.067,  0.125, ...,  0.052,  0.074,  0.061],
        [ 1.   ,  0.054,  0.123, ...,  0.043,  0.074,  0.088],
        ..., 
        [ 1.   ,  0.762,  0.137, ...,  0.199,  0.625,  0.097],
        [ 0.956,  1.   ,  0.249, ...,  0.13 ,  0.419,  0.102],
        [ 0.486,  1.   ,  0.561, ...,  0.357,  0.294,  0.193]]),
 array([[ 0.731,  0.478,  0.162, ...,  0.106,  0.362,  1.   ],
        [ 0.761,  1.   ,  0.754, ...,  0.657,  0.31 ,  0.368],
        [ 0.401,  0.277,  0.767, ...,  1.   ,  0.545,  0.569],
        ..., 
        [ 1.   ,  0.76 ,  0.417, ...,  0.681,  0.275,  0.616],
        [ 0.945,  0.498,  0.62 , ...,  0.362,  0.696,  1.   ],
        [ 0.298,  0.646,  0.477, ...,  0.174,  0.187,  0.189]]),
 array([[ 1.   ,  0.761,  0.434, ...,  0.459,  0.579,  0.703],
        [ 0.166,  0.119,  0.11 , ...,  1.   ,  0.509,  0.225],
        [ 0.127,  0.085,  0.083, ...,  1.   ,  0.465,  0.15 ],
        ..., 
        [ 0.05 ,  0.088,  0.273, ...,  0.099,  0.288,  0.068],
        [ 1.   ,  0.346,  0.2  , ...,  0.117,  0.133,  0.395],
        [ 1.   ,  0.134,  0.097, ...,  0.064,  0.094,  0.198]]),
 array([[ 1.   ,  0.861,  0.657, ...,  0.342,  0.212,  0.526],
        [ 1.   ,  0.705,  0.415, ...,  0.221,  0.148,  0.412],
        [ 0.974,  0.794,  0.203, ...,  0.354,  1.   ,  0.499],
        ..., 
        [ 0.491,  0.484,  0.412, ...,  1.   ,  0.497,  0.428],
        [ 0.423,  0.308,  0.324, ...,  0.817,  1.   ,  0.254],
        [ 0.804,  0.735,  0.193, ...,  0.226,  1.   ,  0.45 ]]),
 array([[ 0.869,  1.   ,  0.747, ...,  0.891,  0.734,  0.725],
        [ 0.401,  0.164,  0.17 , ...,  0.232,  0.32 ,  0.447],
        [ 0.124,  0.176,  0.266, ...,  0.166,  0.192,  0.168],
        ..., 
        [ 0.119,  0.201,  0.157, ...,  0.869,  0.303,  0.05 ],
        [ 0.144,  0.096,  0.041, ...,  0.232,  0.065,  0.124],
        [ 0.013,  0.014,  0.018, ...,  0.091,  1.   ,  0.071]]),
 array([[ 0.067,  1.   ,  0.725, ...,  0.093,  0.031,  0.026],
        [ 0.042,  0.233,  0.908, ...,  0.151,  0.027,  0.018],
        [ 0.047,  0.383,  0.929, ...,  1.   ,  0.042,  0.05 ],
        ..., 
        [ 0.082,  0.206,  0.059, ...,  0.703,  0.179,  0.135],
        [ 0.072,  0.157,  0.016, ...,  0.984,  0.095,  0.043],
        [ 0.003,  0.004,  0.001, ...,  1.   ,  0.011,  0.001]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.833,  0.75 ,  0.794, ...,  0.709,  0.729,  0.846],
        [ 0.908,  0.801,  0.882, ...,  0.734,  0.665,  1.   ],
        ..., 
        [ 0.879,  1.   ,  0.859, ...,  0.759,  0.866,  0.754],
        [ 0.411,  0.389,  0.435, ...,  0.366,  0.409,  0.472],
        [ 0.222,  0.225,  0.427, ...,  0.221,  0.272,  0.238]]),
 array([[ 1.   ,  0.543,  0.633, ...,  0.066,  0.075,  0.579],
        [ 0.355,  0.239,  1.   , ...,  0.093,  0.084,  0.574],
        [ 0.607,  0.506,  0.701, ...,  0.093,  0.135,  0.686],
        ..., 
        [ 0.364,  1.   ,  0.036, ...,  0.014,  0.001,  0.005],
        [ 0.231,  0.17 ,  0.686, ...,  1.   ,  0.075,  0.097],
        [ 1.   ,  0.714,  0.869, ...,  0.388,  0.381,  0.662]]),
 array([[ 1.   ,  0.905,  0.679, ...,  0.596,  0.553,  0.657],
        [ 0.062,  0.042,  0.1  , ...,  0.022,  0.053,  0.159],
        [ 0.022,  0.098,  0.022, ...,  0.013,  0.124,  0.125],
        ..., 
        [ 0.796,  0.86 ,  1.   , ...,  0.906,  0.154,  0.712],
        [ 0.028,  0.223,  0.022, ...,  1.   ,  0.033,  0.044],
        [ 0.028,  0.248,  0.024, ...,  1.   ,  0.066,  0.047]]),
 array([[ 0.163,  0.06 ,  0.062, ...,  0.218,  0.704,  1.   ],
        [ 0.765,  1.   ,  0.797, ...,  0.037,  0.082,  0.374],
        [ 0.092,  0.177,  0.175, ...,  1.   ,  0.608,  0.156],
        ..., 
        [ 0.746,  0.946,  0.423, ...,  0.255,  0.231,  0.573],
        [ 0.183,  0.838,  0.832, ...,  0.123,  0.041,  0.002],
        [ 0.568,  1.   ,  0.939, ...,  0.198,  0.309,  0.243]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.839,  0.841,  1.   , ...,  0.727,  0.723,  0.74 ],
        [ 0.191,  0.187,  0.07 , ...,  0.558,  0.208,  0.092],
        ..., 
        [ 0.104,  0.469,  0.098, ...,  0.125,  0.081,  0.075],
        [ 0.206,  0.397,  0.284, ...,  0.331,  0.276,  0.216],
        [ 0.225,  1.   ,  0.437, ...,  0.563,  0.335,  0.329]]),
 array([[ 0.025,  0.025,  0.064, ...,  0.052,  0.029,  0.031],
        [ 0.026,  0.031,  0.054, ...,  0.122,  0.03 ,  0.04 ],
        [ 0.012,  0.021,  0.035, ...,  0.175,  0.025,  0.028],
        ..., 
        [ 0.494,  0.034,  0.073, ...,  0.665,  0.039,  0.424],
        [ 0.449,  0.05 ,  0.099, ...,  0.808,  0.065,  0.75 ],
        [ 0.353,  0.042,  0.078, ...,  0.599,  0.054,  0.687]]),
 array([[ 0.559,  1.   ,  0.533, ...,  0.545,  0.364,  0.281],
        [ 1.   ,  0.975,  0.78 , ...,  0.811,  0.826,  0.917],
        [ 0.992,  0.832,  0.501, ...,  0.873,  0.679,  0.816],
        ..., 
        [ 0.193,  0.156,  0.088, ...,  0.937,  0.41 ,  0.13 ],
        [ 0.894,  0.783,  0.235, ...,  0.748,  0.852,  1.   ],
        [ 0.33 ,  0.306,  0.386, ...,  0.309,  0.529,  0.419]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.201,  0.163,  0.546, ...,  0.181,  0.288,  0.411],
        [ 0.605,  0.601,  0.892, ...,  0.921,  0.421,  0.779],
        ..., 
        [ 0.911,  1.   ,  0.643, ...,  0.672,  0.473,  0.609],
        [ 0.12 ,  0.358,  0.189, ...,  1.   ,  0.391,  0.174],
        [ 0.624,  1.   ,  0.8  , ...,  0.818,  0.287,  0.345]]),
 array([[ 0.544,  0.926,  0.923, ...,  0.793,  0.621,  0.487],
        [ 0.417,  0.074,  0.105, ...,  0.029,  0.047,  0.064],
        [ 0.382,  0.07 ,  0.252, ...,  0.028,  0.136,  0.106],
        ..., 
        [ 0.088,  0.27 ,  1.   , ...,  0.219,  0.135,  0.046],
        [ 0.146,  0.276,  1.   , ...,  0.394,  0.375,  0.113],
        [ 0.257,  0.284,  1.   , ...,  0.261,  0.419,  0.174]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.358,  0.063,  0.705, ...,  0.202,  0.301,  0.065],
        [ 0.02 ,  0.036,  0.786, ...,  0.013,  0.011,  0.014],
        ..., 
        [ 0.091,  0.288,  1.   , ...,  0.39 ,  0.204,  0.041],
        [ 0.075,  0.071,  0.12 , ...,  0.316,  0.168,  0.058],
        [ 0.322,  0.409,  0.565, ...,  0.316,  0.453,  0.311]]),
 array([[ 0.035,  0.054,  0.212, ...,  0.025,  0.098,  0.029],
        [ 0.011,  0.02 ,  0.068, ...,  0.013,  0.116,  0.033],
        [ 0.014,  0.049,  0.246, ...,  0.148,  0.674,  0.101],
        ..., 
        [ 0.542,  0.83 ,  0.223, ...,  0.02 ,  0.031,  1.   ],
        [ 0.058,  0.501,  0.144, ...,  0.073,  0.087,  0.064],
        [ 0.012,  1.   ,  0.058, ...,  0.012,  0.029,  0.007]]),
 array([[ 1.   ,  0.966,  0.112, ...,  0.099,  0.112,  0.16 ],
        [ 0.139,  0.17 ,  0.569, ...,  0.36 ,  0.166,  0.187],
        [ 0.125,  0.282,  0.563, ...,  0.194,  0.17 ,  0.159],
        ..., 
        [ 0.85 ,  1.   ,  0.558, ...,  0.778,  0.608,  0.55 ],
        [ 0.423,  0.229,  0.28 , ...,  0.427,  0.383,  1.   ],
        [ 0.27 ,  0.264,  0.429, ...,  0.596,  0.585,  0.297]]),
 array([[ 0.547,  0.472,  0.412, ...,  0.708,  0.676,  1.   ],
        [ 0.419,  0.185,  0.112, ...,  0.569,  0.494,  1.   ],
        [ 0.2  ,  0.221,  0.244, ...,  0.934,  0.304,  0.214],
        ..., 
        [ 0.843,  0.417,  0.152, ...,  0.809,  1.   ,  0.178],
        [ 1.   ,  0.247,  0.11 , ...,  0.503,  0.62 ,  0.689],
        [ 0.142,  0.143,  0.113, ...,  0.483,  0.232,  0.144]]),
 array([[ 0.845,  0.877,  0.881, ...,  0.904,  0.801,  0.704],
        [ 0.052,  0.105,  0.14 , ...,  0.074,  0.787,  0.062],
        [ 0.033,  0.115,  0.118, ...,  0.048,  1.   ,  0.037],
        ..., 
        [ 0.087,  0.126,  0.158, ...,  0.496,  0.142,  0.146],
        [ 0.036,  0.018,  0.026, ...,  0.426,  0.066,  0.099],
        [ 0.046,  0.036,  0.058, ...,  0.134,  0.1  ,  0.252]]),
 array([[ 1.   ,  0.817,  0.798, ...,  0.129,  0.159,  0.791],
        [ 0.461,  0.7  ,  0.621, ...,  0.293,  0.278,  0.387],
        [ 0.775,  0.948,  0.646, ...,  0.554,  0.616,  0.5  ],
        ..., 
        [ 0.203,  0.163,  0.35 , ...,  0.688,  0.568,  0.473],
        [ 0.04 ,  0.006,  0.022, ...,  0.093,  1.   ,  0.879],
        [ 0.39 ,  0.16 ,  0.21 , ...,  0.218,  0.377,  0.516]]),
 array([[ 1.   ,  0.609,  0.469, ...,  0.123,  0.108,  0.304],
        [ 1.   ,  0.48 ,  0.315, ...,  0.09 ,  0.128,  0.259],
        [ 0.09 ,  0.053,  0.119, ...,  0.037,  0.031,  0.106],
        ..., 
        [ 0.99 ,  0.951,  0.612, ...,  0.147,  0.167,  1.   ],
        [ 0.862,  1.   ,  0.394, ...,  0.103,  0.088,  0.518],
        [ 0.877,  1.   ,  0.512, ...,  0.123,  0.107,  0.629]]),
 array([[ 1.   ,  0.369,  0.132, ...,  0.131,  0.136,  0.689],
        [ 0.097,  0.569,  0.995, ...,  0.517,  0.192,  0.093],
        [ 0.011,  0.033,  1.   , ...,  0.241,  0.019,  0.007],
        ..., 
        [ 0.005,  0.183,  1.   , ...,  0.023,  0.003,  0.005],
        [ 0.007,  0.252,  1.   , ...,  0.074,  0.005,  0.003],
        [ 0.003,  0.006,  1.   , ...,  0.051,  0.002,  0.002]]),
 array([[ 0.679,  0.271,  0.261, ...,  0.172,  0.152,  1.   ],
        [ 0.359,  0.248,  0.456, ...,  0.596,  0.291,  0.425],
        [ 0.193,  0.236,  0.26 , ...,  0.112,  0.109,  0.226],
        ..., 
        [ 0.055,  0.138,  0.057, ...,  1.   ,  0.105,  0.06 ],
        [ 0.121,  0.137,  1.   , ...,  0.363,  0.103,  0.078],
        [ 0.016,  0.084,  0.293, ...,  1.   ,  0.032,  0.023]]),
 array([[ 0.084,  0.176,  0.071, ...,  1.   ,  0.167,  0.066],
        [ 0.065,  0.154,  0.047, ...,  0.431,  0.16 ,  0.072],
        [ 0.16 ,  0.279,  0.147, ...,  0.706,  0.197,  0.143],
        ..., 
        [ 0.31 ,  0.494,  0.674, ...,  0.609,  0.602,  0.943],
        [ 0.084,  0.06 ,  0.073, ...,  0.047,  0.067,  0.193],
        [ 0.009,  0.003,  0.006, ...,  0.029,  0.008,  0.2  ]]),
 array([[ 0.3  ,  0.417,  0.752, ...,  0.34 ,  0.29 ,  0.278],
        [ 1.   ,  0.328,  0.659, ...,  0.365,  0.281,  0.623],
        [ 0.603,  0.118,  0.187, ...,  0.655,  1.   ,  0.989],
        ..., 
        [ 0.474,  0.7  ,  0.404, ...,  0.091,  0.07 ,  0.235],
        [ 0.286,  0.139,  0.011, ...,  0.044,  0.009,  0.034],
        [ 1.   ,  0.12 ,  0.007, ...,  0.001,  0.001,  0.001]]),
 array([[ 1.   ,  0.699,  0.615, ...,  0.58 ,  0.564,  0.701],
        [ 0.017,  0.022,  0.038, ...,  0.017,  0.01 ,  0.018],
        [ 0.051,  0.052,  0.145, ...,  0.04 ,  0.063,  0.05 ],
        ..., 
        [ 0.279,  0.28 ,  0.054, ...,  1.   ,  0.622,  0.081],
        [ 0.351,  0.215,  0.175, ...,  1.   ,  0.7  ,  0.144],
        [ 0.038,  0.126,  0.04 , ...,  1.   ,  0.205,  0.151]]),
 array([[ 1.   ,  0.902,  0.17 , ...,  0.136,  0.124,  0.212],
        [ 0.011,  0.024,  0.014, ...,  0.015,  0.008,  0.894],
        [ 0.008,  1.   ,  0.02 , ...,  0.614,  0.015,  0.037],
        ..., 
        [ 0.006,  0.009,  0.009, ...,  0.01 ,  0.008,  0.086],
        [ 0.045,  0.029,  0.02 , ...,  0.074,  0.048,  0.251],
        [ 0.015,  0.013,  0.007, ...,  0.013,  0.009,  0.147]]),
 array([[ 1.   ,  0.952,  0.7  , ...,  0.85 ,  0.854,  0.729],
        [ 1.   ,  0.532,  0.417, ...,  0.938,  0.293,  0.387],
        [ 0.038,  0.078,  1.   , ...,  0.506,  0.038,  0.021],
        ..., 
        [ 0.122,  0.189,  0.118, ...,  1.   ,  0.169,  0.14 ],
        [ 0.457,  0.414,  0.796, ...,  0.86 ,  0.684,  1.   ],
        [ 0.445,  0.412,  1.   , ...,  0.84 ,  0.431,  0.33 ]]),
 array([[ 0.205,  0.154,  0.142, ...,  0.141,  0.099,  0.056],
        [ 0.426,  0.32 ,  0.492, ...,  0.825,  0.878,  0.338],
        [ 1.   ,  0.623,  0.175, ...,  0.52 ,  0.791,  0.085],
        ..., 
        [ 0.225,  0.275,  0.278, ...,  0.213,  0.162,  0.167],
        [ 0.143,  0.093,  0.072, ...,  1.   ,  0.417,  0.187],
        [ 0.108,  0.127,  0.156, ...,  0.7  ,  0.336,  0.224]]),
 array([[ 1.   ,  0.699,  0.617, ...,  0.352,  0.381,  0.463],
        [ 0.539,  1.   ,  0.232, ...,  0.127,  0.139,  0.193],
        [ 1.   ,  0.726,  0.193, ...,  0.567,  0.734,  0.505],
        ..., 
        [ 0.612,  0.405,  0.392, ...,  0.262,  0.051,  0.142],
        [ 0.298,  0.006,  0.004, ...,  0.052,  0.003,  0.006],
        [ 0.214,  0.008,  0.007, ...,  0.006,  0.002,  0.007]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.469,  0.273,  0.348, ...,  0.151,  0.168,  0.58 ],
        [ 0.219,  0.134,  0.105, ...,  0.051,  0.08 ,  0.451],
        ..., 
        [ 0.269,  0.364,  0.542, ...,  1.   ,  0.975,  0.545],
        [ 0.227,  0.173,  0.183, ...,  0.201,  0.411,  1.   ],
        [ 0.293,  0.175,  0.171, ...,  0.211,  0.727,  1.   ]]),
 array([[ 1.   ,  0.803,  0.538, ...,  0.408,  0.412,  0.139],
        [ 0.047,  0.068,  0.065, ...,  1.   ,  0.545,  0.087],
        [ 0.116,  1.   ,  0.283, ...,  0.049,  0.14 ,  0.074],
        ..., 
        [ 0.07 ,  1.   ,  0.195, ...,  0.035,  0.212,  0.052],
        [ 0.025,  1.   ,  0.137, ...,  0.016,  0.127,  0.017],
        [ 0.166,  1.   ,  0.395, ...,  0.104,  0.21 ,  0.157]]),
 array([[ 0.143,  0.074,  0.055, ...,  0.126,  0.107,  0.074],
        [ 0.061,  0.007,  0.013, ...,  0.029,  0.032,  0.02 ],
        [ 0.025,  0.005,  0.006, ...,  0.015,  0.001,  0.008],
        ..., 
        [ 0.01 ,  0.029,  1.   , ...,  0.095,  0.005,  0.03 ],
        [ 0.205,  0.113,  0.154, ...,  0.021,  0.053,  1.   ],
        [ 0.156,  0.226,  0.193, ...,  0.101,  0.145,  1.   ]]),
 array([[ 1.   ,  0.109,  0.095, ...,  0.086,  0.067,  0.209],
        [ 1.   ,  0.544,  0.149, ...,  0.357,  0.154,  0.255],
        [ 1.   ,  0.323,  0.097, ...,  0.267,  0.306,  0.399],
        ..., 
        [ 0.086,  0.058,  0.074, ...,  1.   ,  0.54 ,  0.416],
        [ 0.117,  0.09 ,  0.193, ...,  1.   ,  0.621,  0.323],
        [ 0.276,  0.13 ,  0.138, ...,  1.   ,  0.4  ,  0.32 ]]),
 array([[ 0.008,  0.004,  0.023, ...,  0.014,  1.   ,  0.011],
        [ 0.008,  0.004,  0.023, ...,  0.007,  1.   ,  0.008],
        [ 0.007,  0.003,  0.021, ...,  0.18 ,  1.   ,  0.082],
        ..., 
        [ 1.   ,  0.861,  0.662, ...,  0.939,  0.652,  0.651],
        [ 1.   ,  0.65 ,  0.58 , ...,  0.379,  0.665,  0.871],
        [ 0.909,  1.   ,  0.937, ...,  0.616,  0.593,  0.86 ]]),
 array([[ 0.051,  0.111,  0.153, ...,  0.925,  0.064,  0.143],
        [ 0.073,  0.118,  0.108, ...,  1.   ,  0.045,  0.157],
        [ 0.03 ,  1.   ,  0.106, ...,  0.507,  0.086,  0.022],
        ..., 
        [ 0.162,  0.181,  0.016, ...,  1.   ,  0.023,  0.033],
        [ 0.043,  0.099,  0.032, ...,  1.   ,  0.128,  0.032],
        [ 0.057,  0.25 ,  0.048, ...,  1.   ,  0.065,  0.179]]),
 array([[ 0.121,  0.139,  0.49 , ...,  0.148,  0.161,  0.19 ],
        [ 0.039,  0.664,  0.166, ...,  1.   ,  0.084,  0.101],
        [ 0.061,  0.417,  0.106, ...,  0.531,  0.128,  1.   ],
        ..., 
        [ 0.226,  0.886,  0.37 , ...,  1.   ,  0.417,  0.506],
        [ 0.091,  0.492,  0.236, ...,  1.   ,  0.2  ,  0.185],
        [ 0.267,  0.733,  0.314, ...,  1.   ,  0.563,  0.699]]),
 array([[ 0.01 ,  0.013,  0.011, ...,  0.003,  0.004,  0.005],
        [ 0.062,  0.237,  1.   , ...,  0.015,  0.023,  0.036],
        [ 0.097,  0.121,  0.228, ...,  0.157,  0.072,  0.062],
        ..., 
        [ 0.191,  0.044,  0.274, ...,  0.136,  0.014,  0.029],
        [ 0.414,  0.029,  0.101, ...,  0.127,  0.016,  0.033],
        [ 0.16 ,  0.045,  0.053, ...,  0.062,  0.024,  0.025]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.559,  0.469,  0.485, ...,  0.83 ,  0.532,  0.933],
        [ 0.456,  0.317,  0.225, ...,  0.477,  0.432,  0.211],
        ..., 
        [ 0.178,  0.374,  0.335, ...,  1.   ,  0.533,  0.162],
        [ 0.263,  0.287,  0.277, ...,  1.   ,  0.955,  0.197],
        [ 0.338,  1.   ,  0.908, ...,  0.113,  0.148,  0.215]]),
 array([[ 0.49 ,  0.127,  0.072, ...,  0.023,  0.028,  1.   ],
        [ 0.002,  0.002,  0.006, ...,  0.001,  0.002,  0.008],
        [ 0.006,  0.004,  0.009, ...,  0.   ,  0.001,  0.021],
        ..., 
        [ 1.   ,  0.666,  0.618, ...,  0.15 ,  0.055,  0.009],
        [ 0.945,  1.   ,  0.15 , ...,  0.13 ,  0.398,  0.229],
        [ 0.069,  0.065,  0.07 , ...,  0.051,  0.902,  1.   ]]),
 array([[ 0.106,  0.06 ,  0.205, ...,  0.096,  0.338,  1.   ],
        [ 0.074,  0.043,  0.273, ...,  0.091,  0.079,  1.   ],
        [ 0.066,  0.862,  0.097, ...,  1.   ,  0.098,  0.127],
        ..., 
        [ 0.083,  0.169,  0.453, ...,  1.   ,  0.388,  0.078],
        [ 0.072,  0.298,  1.   , ...,  0.497,  0.33 ,  0.109],
        [ 0.008,  0.037,  1.   , ...,  0.19 ,  0.009,  0.008]]),
 array([[ 0.893,  0.809,  0.947, ...,  0.429,  0.788,  0.867],
        [ 0.981,  0.826,  0.626, ...,  0.836,  0.939,  0.915],
        [ 0.508,  0.501,  0.512, ...,  1.   ,  0.789,  0.7  ],
        ..., 
        [ 0.798,  0.444,  0.717, ...,  0.887,  0.359,  0.966],
        [ 1.   ,  0.785,  0.406, ...,  0.424,  0.23 ,  0.597],
        [ 0.41 ,  0.203,  0.317, ...,  0.178,  0.731,  0.711]]),
 array([[ 0.184,  0.144,  0.143, ...,  0.073,  0.087,  0.077],
        [ 0.056,  0.046,  0.014, ...,  0.109,  0.006,  0.025],
        [ 0.07 ,  0.012,  0.01 , ...,  0.147,  0.018,  0.042],
        ..., 
        [ 0.481,  1.   ,  0.049, ...,  0.065,  0.011,  0.024],
        [ 1.   ,  0.347,  0.025, ...,  0.087,  0.026,  0.238],
        [ 0.362,  0.386,  0.283, ...,  0.154,  0.208,  1.   ]]),
 array([[ 0.215,  0.34 ,  0.519, ...,  0.184,  0.122,  0.186],
        [ 0.177,  0.197,  0.206, ...,  1.   ,  0.761,  0.13 ],
        [ 0.878,  0.26 ,  0.024, ...,  0.587,  1.   ,  0.238],
        ..., 
        [ 0.014,  0.062,  0.03 , ...,  0.034,  0.081,  0.087],
        [ 0.025,  0.173,  0.054, ...,  0.127,  0.217,  0.118],
        [ 0.023,  0.218,  0.117, ...,  0.032,  0.16 ,  0.033]]),
 array([[ 1.   ,  0.953,  0.597, ...,  0.318,  0.327,  0.631],
        [ 0.009,  0.035,  0.355, ...,  0.162,  0.012,  0.02 ],
        [ 0.023,  0.198,  0.854, ...,  0.224,  0.021,  0.049],
        ..., 
        [ 0.01 ,  0.03 ,  0.348, ...,  0.057,  0.013,  0.049],
        [ 0.043,  0.043,  0.263, ...,  0.129,  0.045,  0.059],
        [ 0.014,  0.014,  0.13 , ...,  0.03 ,  0.019,  0.013]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 1.   ,  0.291,  0.051, ...,  0.04 ,  0.044,  0.436],
        [ 0.404,  0.057,  0.027, ...,  0.032,  0.088,  1.   ],
        ..., 
        [ 1.   ,  0.069,  0.011, ...,  0.008,  0.011,  0.043],
        [ 1.   ,  0.009,  0.029, ...,  0.002,  0.004,  0.021],
        [ 1.   ,  0.021,  0.01 , ...,  0.004,  0.01 ,  0.027]]),
 array([[ 0.938,  1.   ,  0.028, ...,  0.065,  0.371,  0.014],
        [ 0.808,  1.   ,  0.041, ...,  0.08 ,  0.256,  0.006],
        [ 0.842,  1.   ,  0.153, ...,  0.009,  0.004,  0.102],
        ..., 
        [ 0.005,  0.012,  0.015, ...,  0.02 ,  0.003,  0.068],
        [ 0.001,  0.002,  0.005, ...,  0.018,  0.002,  0.051],
        [ 0.002,  0.004,  0.006, ...,  0.031,  0.005,  0.089]]),
 array([[ 1.   ,  0.944,  0.238, ...,  0.134,  0.126,  0.267],
        [ 0.025,  0.034,  0.087, ...,  0.061,  0.614,  0.079],
        [ 0.012,  0.018,  0.182, ...,  0.038,  0.579,  0.042],
        ..., 
        [ 0.064,  0.047,  0.675, ...,  0.083,  0.043,  0.385],
        [ 0.035,  0.043,  0.707, ...,  0.108,  0.043,  0.462],
        [ 0.05 ,  0.058,  0.915, ...,  0.096,  0.143,  0.336]]),
 array([[ 1.   ,  1.   ,  1.   , ...,  1.   ,  1.   ,  1.   ],
        [ 0.028,  0.144,  1.   , ...,  0.019,  0.016,  0.049],
        [ 0.025,  0.033,  0.593, ...,  0.053,  0.356,  0.036],
        ..., 
        [ 1.   ,  0.25 ,  0.375, ...,  0.585,  0.322,  0.241],
        [ 0.939,  0.326,  0.358, ...,  0.099,  0.188,  0.31 ],
        [ 1.   ,  0.423,  0.482, ...,  0.415,  0.568,  0.447]]),
 array([[ 1.   ,  0.795,  0.045, ...,  0.433,  0.608,  0.027],
        [ 1.   ,  0.533,  0.113, ...,  0.101,  0.093,  0.555],
        [ 1.   ,  0.749,  0.424, ...,  0.084,  0.131,  0.748],
        ..., 
        [ 1.   ,  0.488,  0.278, ...,  0.055,  0.07 ,  0.876],
        [ 0.606,  0.339,  0.172, ...,  0.935,  0.787,  0.616],
        [ 0.377,  0.402,  0.482, ...,  0.744,  0.588,  0.425]]),
 array([[ 0.343,  0.831,  1.   , ...,  0.435,  0.105,  0.164],
        [ 0.037,  1.   ,  0.967, ...,  0.134,  0.009,  0.015],
        [ 0.155,  0.982,  1.   , ...,  0.105,  0.027,  0.043],
        ..., 
        [ 0.127,  1.   ,  0.222, ...,  0.043,  0.034,  0.132],
        [ 0.113,  1.   ,  0.194, ...,  0.061,  0.025,  0.103],
        [ 0.1  ,  1.   ,  0.224, ...,  0.068,  0.024,  0.077]]),
 array([[ 0.228,  0.206,  0.123, ...,  0.127,  0.136,  1.   ],
        [ 0.119,  0.062,  0.09 , ...,  0.062,  0.083,  0.509],
        [ 0.014,  0.008,  0.029, ...,  0.007,  0.007,  0.261],
        ..., 
        [ 0.013,  0.01 ,  0.074, ...,  0.011,  0.013,  0.239],
        [ 0.038,  0.014,  0.032, ...,  0.029,  0.036,  0.25 ],
        [ 0.046,  0.016,  0.111, ...,  0.013,  0.02 ,  0.988]]),
 array([[ 1.   ,  0.311,  0.106, ...,  0.141,  0.057,  0.891],
        [ 0.402,  1.   ,  0.358, ...,  0.054,  0.178,  0.195],
        [ 1.   ,  0.309,  0.338, ...,  0.137,  0.174,  0.614],
        ..., 
        [ 1.   ,  0.51 ,  0.37 , ...,  0.362,  0.34 ,  0.546],
        [ 0.826,  0.509,  0.444, ...,  0.585,  0.589,  1.   ],
        [ 0.951,  1.   ,  0.696, ...,  0.236,  0.222,  0.778]]),
 array([[ 1.   ,  0.621,  0.599, ...,  0.338,  0.246,  0.223],
        [ 1.   ,  0.107,  0.096, ...,  0.179,  0.154,  0.146],
        [ 1.   ,  0.357,  0.247, ...,  0.464,  0.293,  0.003],
        ..., 
        [ 0.529,  0.117,  0.227, ...,  0.145,  0.577,  1.   ],
        [ 0.97 ,  1.   ,  0.509, ...,  0.402,  0.628,  0.028],
        [ 1.   ,  0.999,  0.925, ...,  0.791,  0.711,  0.641]]),
 array([[ 0.074,  0.046,  0.135, ...,  0.037,  0.066,  0.11 ],
        [ 0.033,  0.034,  0.075, ...,  0.038,  0.059,  0.088],
        [ 0.058,  0.042,  0.15 , ...,  0.051,  0.099,  0.14 ],
        ..., 
        [ 0.21 ,  0.125,  0.714, ...,  0.061,  0.153,  0.447],
        [ 0.104,  0.096,  0.282, ...,  0.116,  0.129,  0.232],
        [ 0.889,  1.   ,  0.935, ...,  0.267,  0.259,  0.597]]),
 array([[ 0.366,  0.35 ,  0.235, ...,  0.956,  1.   ,  0.676],
        [ 0.205,  0.138,  0.307, ...,  0.304,  0.322,  0.44 ],
        [ 0.123,  0.086,  0.136, ...,  0.186,  0.141,  0.14 ],
        ..., 
        [ 0.121,  0.184,  0.175, ...,  0.337,  0.008,  0.004],
        [ 0.962,  1.   ,  0.816, ...,  0.906,  0.9  ,  0.765],
        [ 0.406,  1.   ,  0.568, ...,  0.159,  0.112,  0.124]]),
 array([[ 0.804,  0.594,  0.59 , ...,  0.639,  0.829,  0.364],
        [ 0.872,  0.472,  0.627, ...,  0.571,  0.804,  0.699],
        [ 0.742,  0.598,  0.523, ...,  0.513,  0.667,  0.722],
        ..., 
        [ 1.   ,  0.765,  0.406, ...,  0.128,  0.107,  0.345],
        [ 0.61 ,  0.264,  0.35 , ...,  0.207,  0.106,  0.192],
        [ 0.276,  0.144,  0.18 , ...,  0.096,  0.106,  0.068]])]

squeeze vocab data into one array


In [4]:
# use first 100 songs to create vocabulary
vocab_size = 100
def build_set(data):
    num_of_items = 0
    for i in range(len(data)):
        num_of_items += data[i].shape[0]
    print num_of_items
    results = np.ndarray((num_of_items, data[0].shape[1]))
    count = 0
    for i in range(len(data)):
        for j in range(data[i].shape[0]):
            results[count] = data[i][j]
            count += 1
    return results
print "building vocab set"
vocab_pitches = build_set(segments_pitches_1000[:100])
print vocab_pitches.shape


building vocab set
91912
(91912, 12)

old k-means code


In [8]:
from sklearn.utils.extmath import row_norms

In [9]:
def assign_points_to_labels(centroids, points):
    # 1 list for each centroid (will contain indices of points)
    k = len(centroids)
    labels = np.zeros(points.shape[0], dtype=int)
    dists = euclidean_distances(points, centroids)
    for i in range(points.shape[0]):
        # find nearest centroid to this point
        best_centroid = 0
        best_distance = dists[i, best_centroid]
        for c in range(1, k):
            distance = dists[i, c]
            if distance < best_distance:
                best_distance = distance
                best_centroid = c
        labels[i] = best_centroid
    return labels

def update_centroids(centroids, labels, points):
    k = len(centroids)
    n,d = points.shape[0], points.shape[1]
    sum_points = np.zeros([k, d])
    n_elements = np.zeros(k, dtype=int)
    for i in range(n):
        sum_points[labels[i]] += points[i]
        n_elements[labels[i]] += 1
    for ci in range(k):
        if n_elements[ci] != 0:
            centroids[ci] = sum_points[ci]/n_elements[ci]

def mykmeans(points, k, max_iter=50, centroids=None):
    n_samples, n_features = points.shape
    if not centroids:
        centroids = [points[x] for x in random.sample(range(n_samples), k)]
    labels = None
    for p in range(max_iter):
        labels = assign_points_to_labels(centroids, points)
        update_centroids(centroids, labels, points)
    return centroids, labels

        
def mykmeansplusplus(points, k, max_iter=50):
    n_samples, n_features = points.shape
    centroidIndices = []
    centroidIndices.append(np.random.randint(0, n_samples))
    for i in range(k-1):
        weightProb = []
        leftPointsIndices = [p for p in range(n_samples) if p not in centroidIndices]
        dists = euclidean_distances(points[leftPointsIndices], points[centroidIndices])
        for p in range(len(leftPointsIndices)):
            best_D = dists[p, 0]
            best_p = centroidIndices[0]
            for c in range(1, len(centroidIndices)):
                D = dists[p, c]
                if D < best_D:
                    best_D = D
            weightProb.append(best_D)
        cum = sum(weightProb)
        weightProb = [p/cum for p in weightProb]
        centroidIndices.append(np.random.choice(leftPointsIndices, p=weightProb))
    centroids = [points[c] for c in centroidIndices]
    print centroids
    return mykmeans(points, k, max_iter, centroids)

learnvocabulary function


In [36]:
from sklearn.cluster import KMeans
#def learnvocabulary(vocab_data, num_clusters, max_iter=50):
#    return mykmeansplusplus(vocab_data, num_clusters, max_iter)
for k in [2,4,8,16,32,64]:
    t1 = time.time()
    sk_kmeans = KMeans(n_clusters=k,  init='random', max_iter=50)
    sk_kmeans.fit(vocab_pitches)
    print time.time()-t1


1.49621605873
5.83728599548
9.36794686317
28.6680290699
54.6745979786
114.990983009

Bag of features


In [41]:
def getbof(centroids, signal):
    bof_tf = np.zeros(len(centroids))
    labels = assign_points_to_labels(centroids, signal)
    for i in range(labels.shape[0]):
        bof_tf[labels[i]] += 1
    return bof_tf
# test on one example

bof =  getbof(centroids, segments_pitches_1000[199])

In [48]:
%matplotlib inline

import matplotlib
import numpy as np
import matplotlib.pyplot as plt
plt.bar(range(64), bof)
plt.xlabel("Bins for Codewords/Centroids")
plt.ylabel("Number of features in a particular bin")


Out[48]:
<matplotlib.text.Text at 0x7f49b912f690>

3.1 Minibatch k-means


In [30]:
def cache_nearest_centroids(centroids, points, k):
    points_to_clusters = [-1 for i in range(len(points))]
    dists = euclidean_distances(centroids, points)
    for i in range(len(points)):
        # find nearest centroid to this point
        best_centroid = 0
        best_distance = dists[best_centroid, i]
        for c in range(1, k):
            distance = dists[c, i]
            if distance < best_distance:
                best_distance = distance
                best_centroid = c
        points_to_clusters[i] = best_centroid
    return points_to_clusters

def minibatch_kmeans(X, k, b, max_iter=300, C=None):
    n_samples, n_features = X.shape
    if not C:
        C = [X[c] for c in random.sample(xrange(n_samples), k)]
    
    for i in xrange(max_iter):
        v = [0 for i in xrange(k)]
        M = [X[j] for j in random.sample(xrange(n_samples), b)]
        d = cache_nearest_centroids(C, M, k)
        for j in range(len(M)):
            c = C[d[j]]
            v[d[j]] += 1
            eta = 1./v[d[j]]
            C[d[j]] = (1-eta)*c + eta*M[j]
    return C

In [39]:
#for k in [2,4,8,16,32,64,128,256,512]:
k = 64
t1 = time.time()
centroids = minibatch_kmeans(vocab_pitches, k, 1000)
print time.time() - t1


5.69690585136

3.2 Vector of locally aggregated descriptors (vlad)


In [54]:
def vlad(centroids, signal):
    # signal = variable, d 
    # centroids = k, d
    k = len(centroids)
    d = signal.shape[1]
    v = np.zeros([k, d])
    #t = time.time()
    labels = assign_points_to_labels(centroids, signal)
    #print time.time()-t
    # predicted_clusters contains indices of descriptors in signal belonging to different centroids. 
    for i in range(labels.shape[0]):
            v[labels[i]] += signal[i] - centroids[labels[i]]
    # Global L2 normalization
    n_v = v.reshape(k*d)
    n_v = n_v/np.sqrt(n_v.dot(n_v))
    return n_v

In [28]:
plt.matshow(segments_pitches_1000[199][:40].reshape(12,40), cmap=plt.cm.Blues)
segments_pitches_1000[199][:40].reshape(12,40)


Out[28]:
array([[ 0.804,  0.594,  0.59 ,  0.508,  0.634,  1.   ,  0.735,  0.478,
         0.789,  0.639,  0.829,  0.364,  0.872,  0.472,  0.627,  0.523,
         0.537,  1.   ,  0.513,  0.861,  0.747,  0.571,  0.804,  0.699,
         0.742,  0.598,  0.523,  0.754,  0.599,  1.   ,  0.62 ,  0.33 ,
         0.351,  0.513,  0.667,  0.722,  1.   ,  0.246,  0.357,  0.263],
       [ 0.369,  0.339,  0.178,  0.218,  0.209,  0.481,  0.25 ,  0.389,
         1.   ,  0.19 ,  0.24 ,  0.161,  0.285,  0.299,  0.134,  0.155,
         0.211,  0.376,  0.147,  0.228,  1.   ,  0.122,  0.125,  0.132,
         0.292,  0.255,  0.068,  0.168,  0.163,  0.593,  0.094,  0.199,
         1.   ,  0.064,  0.074,  0.07 ,  0.195,  0.223,  0.054,  0.143],
       [ 0.153,  0.408,  0.085,  0.21 ,  0.93 ,  0.09 ,  0.133,  0.129,
         0.392,  0.557,  0.073,  0.195,  0.167,  1.   ,  0.133,  0.257,
         1.   ,  0.316,  0.247,  0.286,  0.43 ,  0.686,  0.205,  0.331,
         0.231,  0.786,  0.446,  0.769,  0.515,  0.796,  1.   ,  0.389,
         0.326,  0.541,  0.997,  0.93 ,  0.761,  0.904,  0.486,  0.272],
       [ 0.649,  0.68 ,  0.585,  0.402,  0.582,  1.   ,  0.988,  0.561,
         0.635,  0.636,  0.482,  0.297,  0.263,  0.533,  0.756,  0.202,
         0.412,  1.   ,  0.113,  0.135,  0.157,  0.288,  0.435,  0.229,
         0.375,  0.533,  1.   ,  0.245,  0.223,  0.172,  0.173,  0.072,
         0.112,  0.305,  0.129,  0.258,  0.149,  0.177,  1.   ,  0.067],
       [ 0.047,  0.076,  0.215,  0.014,  0.035,  0.236,  0.026,  0.095,
         1.   ,  0.168,  0.147,  0.13 ,  0.147,  0.157,  0.128,  0.134,
         0.087,  0.181,  0.374,  0.343,  0.356,  1.   ,  0.211,  0.096,
         0.271,  0.905,  0.09 ,  0.188,  0.67 ,  0.142,  0.094,  0.323,
         0.396,  0.135,  0.566,  0.159,  0.133,  1.   ,  0.285,  0.057],
       [ 0.373,  0.116,  0.666,  0.255,  1.   ,  0.328,  0.148,  0.552,
         0.466,  0.136,  0.29 ,  0.64 ,  0.213,  0.095,  0.133,  0.27 ,
         1.   ,  0.617,  0.131,  0.095,  0.214,  0.116,  0.104,  0.219,
         0.155,  0.372,  0.607,  0.345,  0.151,  1.   ,  0.178,  0.136,
         0.085,  0.67 ,  0.064,  0.045,  0.383,  0.137,  0.042,  0.166],
       [ 0.499,  1.   ,  0.3  ,  0.385,  0.187,  0.255,  0.116,  0.049,
         0.108,  0.086,  0.172,  0.313,  0.481,  0.151,  0.168,  0.144,
         0.099,  0.448,  0.371,  0.122,  0.14 ,  0.346,  1.   ,  0.879,
         1.   ,  0.753,  0.08 ,  0.133,  0.397,  0.09 ,  0.088,  0.447,
         0.251,  0.063,  0.503,  0.14 ,  0.47 ,  0.177,  0.426,  0.103],
       [ 0.108,  0.554,  0.309,  0.133,  0.529,  0.143,  1.   ,  0.593,
         0.535,  0.429,  0.635,  0.396,  0.424,  0.578,  0.491,  0.524,
         0.691,  0.548,  0.685,  1.   ,  0.112,  0.642,  0.375,  0.041,
         0.053,  1.   ,  0.19 ,  0.063,  0.407,  0.371,  0.061,  0.127,
         0.569,  0.108,  0.135,  0.293,  0.199,  0.202,  0.905,  0.252],
       [ 0.068,  0.262,  0.264,  1.   ,  0.589,  0.607,  1.   ,  0.646,
         0.632,  0.566,  0.467,  0.394,  0.443,  0.411,  0.461,  0.465,
         0.145,  0.152,  0.097,  0.09 ,  0.087,  0.745,  0.878,  0.102,
         0.127,  0.175,  0.828,  1.   ,  1.   ,  0.269,  0.207,  0.233,
         0.702,  0.91 ,  0.703,  0.818,  0.257,  0.213,  0.45 ,  0.839],
       [ 0.262,  0.098,  0.114,  0.123,  1.   ,  0.326,  0.124,  0.125,
         0.064,  0.101,  0.12 ,  0.868,  0.985,  0.627,  0.469,  0.189,
         0.408,  1.   ,  0.327,  0.234,  0.386,  0.699,  0.469,  0.822,
         0.534,  0.375,  0.281,  0.335,  0.906,  0.364,  0.295,  0.314,
         0.503,  0.466,  0.476,  1.   ,  0.991,  0.731,  0.476,  0.506],
       [ 0.605,  0.344,  0.461,  1.   ,  0.791,  0.67 ,  0.353,  0.714,
         1.   ,  0.985,  0.625,  0.375,  0.343,  0.36 ,  0.419,  0.768,
         0.431,  0.424,  0.408,  0.941,  0.195,  0.22 ,  0.366,  0.137,
         0.19 ,  0.228,  0.355,  1.   ,  0.614,  0.232,  0.225,  0.358,
         0.068,  0.079,  0.141,  0.158,  0.152,  0.307,  0.432,  1.   ],
       [ 0.299,  0.174,  0.079,  0.054,  0.88 ,  1.   ,  0.581,  0.689,
         0.932,  0.918,  0.596,  0.874,  0.972,  0.961,  0.611,  0.265,
         0.042,  0.17 ,  0.139,  0.269,  0.14 ,  0.183,  1.   ,  0.168,
         0.074,  0.066,  0.106,  0.24 ,  0.041,  0.088,  0.169,  0.152,
         0.123,  0.554,  1.   ,  0.134,  0.052,  0.083,  0.116,  0.147]])

In [15]:
euclidean_distances(segments_pitches_1000[199],centroids).shape


Out[15]:
(957, 64)

In [68]:
segments_pitches_1000[np.array([2,4,5],dtype=int)]


---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-68-9c31cae7733d> in <module>()
----> 1 segments_pitches_1000[np.array([2,4,5],dtype=int)]

TypeError: only integer arrays with one element can be converted to an index

In [ ]:


In [ ]:


In [58]:
# test vlad on example
#for k in [2,4,8,16,32,64,128,256,512]:
for k in [2,4,8,16,32,64,128,256,512]:
    centroids = minibatch_kmeans(vocab_pitches, k, 1000)
    X = segments_pitches_1000[100:200]
    #v = np.ndarray([100, 64*12])
    t1 = time.time()
    for i in range(len(X)):
        vlad(centroids, X[i])
    print time.time() - t1

print v.shape
print ex.shape


0.30064702034
0.345008134842
0.416347980499
0.564369916916
0.906133174896
1.53074002266
2.75323081017
5.21149611473
10.5667860508
(100, 768)
(2159, 12)

In [11]:
# Use PCA to reduce dimensionality
# Use LSHForest for approximate nearest neighbors

In [12]:
X = segments_pitches_1000[100:200]
v = np.ndarray([100, 64*12])
t1 = time.time()
for i in range(len(X)):
    v[i] = vlad(centroids, segments_pitches_1000[i])
print time.time() - t1, 'secs'


141.704943895 secs

In [13]:
# reduce dimensionality to 50
pca = PCA(n_components=50)
%time new_v = pca.fit_transform(v)
print new_v.shape


CPU times: user 16.1 ms, sys: 8 ms, total: 24.1 ms
Wall time: 192 ms
(100, 50)

In [36]:
kmeans = MiniBatchKMeans(n_clusters=64)
%time kmeans.fit(vocab_pitches)


CPU times: user 2.71 s, sys: 3.91 ms, total: 2.72 s
Wall time: 2.72 s
Out[36]:
MiniBatchKMeans(batch_size=100, compute_labels=True, init='k-means++',
        init_size=None, max_iter=100, max_no_improvement=10, n_clusters=64,
        n_init=3, random_state=None, reassignment_ratio=0.01, tol=0.0,
        verbose=0)

In [15]:
vocab_pitches.shape


Out[15]:
(91912, 12)

In [32]:
kmeans.cluster_centers_.shape


Out[32]:
(32, 12)

In [19]:
kmeans.labels_


Out[19]:
array([14,  8,  5, ...,  3, 14, 14], dtype=int32)

In [20]:
kmeans.labels_.shape


Out[20]:
(91912,)

In [28]:
kmeans.labels_[50000]


Out[28]:
22

In [44]:
kmeans.predict(segments_pitches_1000[102]);

In [30]:
segments_pitches_1000[100].shape


Out[30]:
(449, 12)

In [34]:
np.set_printoptions(threshold=np.nan)

In [37]:
# test vlad on example
ex = segments_pitches_1000[197]
%time v1 = vlad(centroids, ex)
print v1.shape
%time v2 = vlad2(ex, kmeans)
print v2.shape


0.0352399349213
CPU times: user 41.6 ms, sys: 10 µs, total: 41.6 ms
Wall time: 41.1 ms
(768,)
CPU times: user 16.5 ms, sys: 0 ns, total: 16.5 ms
Wall time: 16.5 ms
(768,)

In [46]:
v1;

In [47]:
v2;

In [53]:
from sklearn.datasets import make_multilabel_classification
from sklearn.multiclass import OneVsRestClassifier
from sklearn.svm import SVC
from sklearn.preprocessing import LabelBinarizer
from sklearn.decomposition import PCA
from sklearn.cross_decomposition import CCA


def plot_hyperplane(clf, min_x, max_x, linestyle, label):
    # get the separating hyperplane
    w = clf.coef_[0]
    a = -w[0] / w[1]
    xx = np.linspace(min_x - 5, max_x + 5)  # make sure the line is long enough
    yy = a * xx - (clf.intercept_[0]) / w[1]
    plt.plot(xx, yy, linestyle, label=label)


def plot_subfigure(X, Y, subplot, title, transform):
    if transform == "pca":
        X = PCA(n_components=2).fit_transform(X)
    elif transform == "cca":
        X = CCA(n_components=2).fit(X, Y).transform(X)
    else:
        raise ValueError

    min_x = np.min(X[:, 0])
    max_x = np.max(X[:, 0])

    min_y = np.min(X[:, 1])
    max_y = np.max(X[:, 1])

    classif = OneVsRestClassifier(SVC(kernel='linear'))
    classif.fit(X, Y)

    plt.subplot(2, 2, subplot)
    plt.title(title)

    zero_class = np.where(Y[:, 0])
    one_class = np.where(Y[:, 1])
    plt.scatter(X[:, 0], X[:, 1], s=40, c='gray')
    plt.scatter(X[zero_class, 0], X[zero_class, 1], s=160, edgecolors='b',
               facecolors='none', linewidths=2, label='Class 1')
    plt.scatter(X[one_class, 0], X[one_class, 1], s=80, edgecolors='orange',
               facecolors='none', linewidths=2, label='Class 2')

    plot_hyperplane(classif.estimators_[0], min_x, max_x, 'k--',
                    'Boundary\nfor class 1')
    plot_hyperplane(classif.estimators_[1], min_x, max_x, 'k-.',
                    'Boundary\nfor class 2')
    plt.xticks(())
    plt.yticks(())

    plt.xlim(min_x - .5 * max_x, max_x + .5 * max_x)
    plt.ylim(min_y - .5 * max_y, max_y + .5 * max_y)
    if subplot == 2:
        plt.xlabel('First principal component')
        plt.ylabel('Second principal component')
        plt.legend(loc="upper left")


plt.figure(figsize=(8, 6))

X, Y = make_multilabel_classification(n_classes=2, n_labels=1,
                                      allow_unlabeled=True,
                                      random_state=1)
print X
print Y
plot_subfigure(X, Y, 1, "With unlabeled samples + CCA", "cca")
plot_subfigure(X, Y, 2, "With unlabeled samples + PCA", "pca")

X, Y = make_multilabel_classification(n_classes=2, n_labels=1,
                                      allow_unlabeled=False,
                                      random_state=1)

plot_subfigure(X, Y, 3, "Without unlabeled samples + CCA", "cca")
plot_subfigure(X, Y, 4, "Without unlabeled samples + PCA", "pca")

plt.subplots_adjust(.04, .02, .97, .94, .09, .2)


[[  5.   3.   2.   2.   3.   1.   3.   6.   3.   2.   4.   3.   3.   5.
    1.   2.   1.   2.   2.   3.]
 [  4.   2.   3.   2.   1.   4.   2.   4.   2.   2.   3.   2.   0.   7.
    4.   3.   3.   5.   2.   1.]
 [  0.   0.   3.   5.   8.   3.   3.   1.   3.   1.   2.   2.   0.   3.
    0.   4.   1.   2.   4.   3.]
 [  4.   0.   1.   2.   3.   6.   2.   5.   1.   5.   2.   3.   0.   1.
    2.   2.   0.   3.   4.   4.]
 [  0.   2.   3.   2.   1.   2.   0.   2.   1.   4.   1.   3.   1.   1.
    1.   2.   2.   4.   0.   2.]
 [  1.   2.   2.   1.   3.   3.   2.   3.   4.   1.   3.   2.   3.   1.
    3.   0.   4.   3.   4.   1.]
 [  0.   1.   0.   4.   1.   0.   0.   3.   0.   7.   2.   9.   0.   1.
    2.   7.   5.   4.   0.   8.]
 [  1.   2.   2.   0.   0.   2.   3.   3.   1.   1.   1.   4.   2.   4.
    0.   3.   3.   2.   4.   6.]
 [  4.   7.   3.   3.   3.   1.   3.   5.   1.   1.   1.   3.   2.   3.
    0.   1.   1.   1.   5.   1.]
 [  0.   0.   1.   3.   7.   7.   1.   2.   3.   6.   3.   5.   0.   3.
    1.   3.   2.   4.   7.   4.]
 [  0.   2.   1.   0.   4.   1.   0.   0.   5.   5.   1.   5.   0.   1.
    0.   6.   3.   4.   1.   4.]
 [  0.   0.   1.   8.   1.   2.   0.   4.   0.   5.   2.   8.   1.   2.
    0.   6.   6.   3.   0.   9.]
 [  0.   1.   2.   4.   1.   6.   5.   5.   0.   5.   1.   8.   0.   2.
    4.   3.   2.   3.   4.   4.]
 [  2.   1.   0.   6.   8.   1.   3.   2.   1.   3.   3.   6.   1.   4.
    1.   5.   2.   6.   2.   9.]
 [  2.   2.   1.   4.   3.   1.   4.   5.   3.   3.   4.   2.   0.   3.
    3.   2.   1.   1.   4.   1.]
 [  1.   1.   2.   5.   2.   0.   0.   3.   5.   2.   5.   0.   1.   2.
    4.   6.   3.   1.   2.   3.]
 [  1.   2.   1.   2.   1.   1.   3.   0.   1.   3.   2.   3.   0.   3.
    3.   5.   1.   1.   1.   2.]
 [  3.   0.   0.   4.   4.   2.   3.   0.   1.   7.   4.   2.   0.   2.
    1.   1.   3.   1.   2.   2.]
 [  5.   2.   2.   3.   6.   2.   1.   4.   1.   1.   3.   3.   3.   2.
    2.   1.   2.   3.   4.   3.]
 [  0.   0.   2.   1.   2.   1.   4.   3.   1.   6.   3.   1.   0.   4.
    1.   1.   1.   2.   3.   5.]
 [  1.   0.   3.   3.   0.   3.   5.   3.   0.   6.   7.   6.   0.  11.
    2.   4.   2.   3.   3.   1.]
 [  0.   1.   0.   1.   4.   3.   0.   1.   3.   3.   3.   8.   0.   3.
    1.   7.   0.   5.   2.   6.]
 [  1.   0.   4.   4.   3.   1.   0.   1.   6.   1.   4.   3.   0.   3.
    4.   1.   3.   7.   4.   4.]
 [  0.   2.   0.   2.   4.   1.   0.   7.   3.   7.   4.   6.   0.   0.
    0.   9.   5.   4.   0.   7.]
 [  0.   0.   1.   2.   2.   2.   2.   1.   0.   9.   2.   6.   1.   4.
    0.   8.   3.   2.   0.   6.]
 [  6.   3.   1.   1.   1.   3.   4.   3.   0.   3.   3.   1.   4.   1.
    2.   2.   3.   1.   2.   1.]
 [  4.   3.   7.   0.   2.   3.   2.   4.   3.   5.   1.   5.   2.   1.
    3.   2.   5.   4.   2.   1.]
 [  1.   0.   0.   1.   2.   4.   0.   6.   1.   7.   1.   6.   1.   2.
    0.   5.   3.   4.   1.   4.]
 [  1.   0.   2.   0.   3.   6.   0.   3.   1.   1.   2.   1.   2.   1.
    3.   3.   2.   2.   2.   1.]
 [  1.   0.   2.   1.   2.   6.   1.   1.   1.   5.   1.   7.   0.   1.
    2.   5.   1.   4.   2.   5.]
 [  2.   0.   1.   3.   1.   0.   1.   3.   1.   6.   2.   7.   0.   3.
    5.   5.   2.   5.   2.   5.]
 [  1.   0.   1.   0.   3.   3.   0.   2.   3.   3.   3.   5.   0.   4.
    1.   1.   1.   5.   4.   5.]
 [  1.   1.   0.   2.   4.   1.   2.   5.   3.   3.   3.   2.   2.   6.
    6.   0.   2.   4.   3.   0.]
 [  0.   2.   2.   1.   2.   3.   0.   2.   0.   5.   1.   2.   0.   0.
    0.   7.   5.   4.   0.   8.]
 [  1.   0.   1.   2.   6.   5.   2.   0.   3.   8.   1.   5.   0.   3.
    1.   0.   1.   1.   2.   2.]
 [  2.   0.   4.   4.   2.   2.   2.   2.   2.   3.   4.   3.   4.   1.
    2.   2.   1.   2.   2.   2.]
 [  4.   0.   1.   0.   3.   6.   3.   8.   1.   3.   4.  10.   0.   7.
    4.   1.   2.   3.   3.   1.]
 [  2.   1.   2.   3.   4.   3.   6.   3.   0.   1.   0.   2.   5.   0.
    1.   1.   8.   3.   1.   5.]
 [  4.   1.   3.   3.   1.   1.   4.   3.   1.   2.   2.   4.   1.   4.
    2.   4.   1.   2.   2.   3.]
 [  1.   1.   3.   2.   0.   2.   5.   3.   0.   3.   1.   4.   0.   7.
    2.   1.   0.   1.   2.   6.]
 [  2.   0.   0.   2.   4.   9.   5.   2.   1.   7.   1.   4.   1.   3.
    1.   3.   0.   1.   3.   8.]
 [  0.   1.   1.   4.   2.   0.   0.   4.   2.  10.   4.   9.   0.   1.
    1.  10.   5.   6.   0.   6.]
 [  3.   0.   3.   1.   0.   3.   1.   2.   1.   3.   3.   1.   3.   1.
    5.   2.   0.   2.   0.   4.]
 [  3.   0.   3.   3.   2.   3.   1.   2.   3.   1.   4.   3.   6.   2.
    1.   7.   4.   7.   1.   2.]
 [  3.   0.   3.   3.   2.   1.   1.   6.   1.   5.   1.   0.   2.   4.
    3.   4.   0.   1.   5.   1.]
 [  3.   1.   3.   3.   4.   5.   4.   0.   0.   8.   2.   4.   0.   9.
    1.   3.   0.   5.   4.   3.]
 [  1.   3.   4.   3.   2.   2.   4.   3.   3.   1.   2.   3.   2.   2.
    3.   3.   1.   0.   4.   3.]
 [  1.   0.   0.   1.   3.   4.   4.   2.   2.   4.   5.   8.   0.   4.
    1.   2.   1.   3.   4.   5.]
 [  1.   2.   1.   2.   2.   5.   3.   1.   2.   1.   5.   4.   3.   4.
    3.   2.   0.   3.   5.   3.]
 [  2.   3.   2.   5.   3.   6.   1.   2.   3.   5.   2.   2.   1.   4.
    0.   2.   2.   0.   3.   2.]
 [  1.   0.   1.   1.   5.   6.   1.   2.   1.   6.   0.   6.   1.   2.
    3.   3.   1.   6.   2.   4.]
 [  0.   0.   1.   2.   0.   0.   1.   3.   2.   5.   2.   7.   0.   1.
    0.   4.   6.   3.   0.   9.]
 [  0.   0.   3.   4.   2.   5.   5.   4.   2.   4.   2.   2.   0.   2.
    0.   4.   6.   4.   1.   6.]
 [  1.   4.   5.   5.   1.   3.   3.   3.   1.   1.   3.   6.   2.   1.
    2.   3.   1.   0.   3.   2.]
 [  2.   0.   2.   3.   1.   4.   1.   3.   2.   4.   4.   5.   0.   6.
    0.   2.   2.   5.   3.   2.]
 [  0.   2.   2.   2.   1.   1.   8.   3.   2.   4.   1.   3.   0.   3.
    3.   2.   2.   3.   4.   5.]
 [  1.   0.   1.   4.   2.   6.   7.   3.   1.   4.   2.   7.   0.   8.
    2.   1.   3.   3.   1.   8.]
 [  2.   0.   1.   1.   1.   2.   4.   2.   2.   3.   3.   1.   1.   1.
    1.   1.   1.   6.   2.   4.]
 [  2.   0.   0.   2.   1.   7.   4.   1.   0.   4.   3.   4.   0.   2.
    4.   1.   1.   3.   2.   4.]
 [  1.   2.   1.   2.   3.   1.   2.   0.   1.   4.   2.   2.   1.   2.
    0.   5.   4.   2.   3.   7.]
 [  2.   4.   2.   1.   2.   2.   7.   0.   1.   2.   0.   5.   5.   3.
    2.   1.   3.   2.   4.   3.]
 [  0.   1.   0.   1.   5.   1.   1.   4.   1.   7.   6.   6.   0.   2.
    0.   2.   2.   6.   2.   7.]
 [  2.   2.   4.   4.   2.   4.   4.   1.   1.   4.   0.   2.   6.   2.
    6.   3.   5.   2.   5.   1.]
 [  2.   0.   2.   0.   9.   3.   1.   2.   0.   7.   4.   5.   0.   5.
    0.   2.   0.   8.   2.   5.]
 [  7.   1.   5.   1.   3.   4.   1.   0.   4.   1.   1.   4.   2.   2.
    6.   0.   2.   1.   5.   0.]
 [  0.   0.   1.   1.   5.   5.   5.   2.   1.   6.   1.   2.   1.   4.
    4.   1.   0.   3.   2.   1.]
 [  0.   0.   1.   2.   3.   3.   4.   1.   0.   4.   5.   7.   0.   2.
    3.   1.   3.   3.   1.   2.]
 [  1.   2.   1.   2.   3.   1.   1.   1.   3.   3.   1.   2.   1.   2.
    4.   1.   5.   0.   1.   5.]
 [  5.   0.   2.   1.   2.   4.   4.   1.   1.   1.   5.   3.   1.   2.
    1.   3.   2.   3.   1.   3.]
 [  2.   2.   2.   3.   1.   1.   2.   5.   1.   2.   2.   4.   3.   2.
    5.   4.   4.   5.   6.   1.]
 [  2.   2.   3.   4.   0.   3.   2.   1.   3.   1.   0.   0.   1.   4.
    2.   5.   1.   2.   2.   1.]
 [  4.   4.   2.   1.   3.   3.   3.   2.   1.  10.   0.   3.   8.   3.
    0.   3.   2.   2.   3.   1.]
 [  4.   3.   1.   0.   4.   4.   3.   4.   0.   3.   5.   5.   3.   5.
    5.   4.   2.   4.   1.   5.]
 [  0.   1.   1.   5.   2.   2.   1.   2.   3.   4.   2.   9.   0.   5.
    1.   4.   9.   4.   0.   2.]
 [  1.   3.   2.   4.   0.   4.   1.   2.   3.   2.   2.   0.   3.   2.
    3.   3.   5.   2.   4.   1.]
 [  1.   0.   4.   3.   1.   5.   2.   0.   1.   3.   2.   7.   0.   4.
    1.   6.   2.   2.   3.   2.]
 [  0.   1.   3.   2.   3.   0.   4.   3.   2.   2.   3.   1.   4.   3.
    2.   2.   1.   2.   3.   2.]
 [  2.   5.   1.   4.   0.   4.   3.   1.   2.   0.   3.   6.   2.   3.
    4.   2.   3.   2.   2.   4.]
 [  1.   1.   3.   4.   4.   3.   0.   4.   4.   0.   4.   4.   4.   4.
    3.   5.   4.   0.   3.   2.]
 [  2.   3.   0.   3.   3.   3.   3.   2.   0.   3.   1.   1.   4.   4.
    3.   1.   1.   0.   0.   2.]
 [  0.   3.   3.   1.   2.   2.   3.   1.   2.   6.   4.   7.   0.   6.
    0.   4.   5.   2.   1.   3.]
 [  1.   0.   2.   2.   4.   2.   2.   4.   3.   3.   5.   2.   0.   5.
    1.   4.   1.   3.   2.   4.]
 [  5.   1.   2.   4.   2.   3.   2.   0.   2.   0.   2.   3.   3.   2.
    1.   1.   4.   2.   1.   4.]
 [  1.   2.   0.   4.   2.   1.   1.   3.   3.   6.   1.   8.   0.   4.
    0.   5.   6.   3.   0.   1.]
 [  0.   0.   4.   1.   4.   3.   1.   3.   0.   6.   3.   4.   0.   5.
    2.   1.   1.   3.   2.   3.]
 [  0.   0.   2.   2.   2.   1.   0.   2.   0.   4.   3.   7.   2.   0.
    0.   4.   6.   7.   0.   8.]
 [  1.   0.   0.   1.   4.   2.   4.   1.   0.   2.   2.   6.   1.   1.
    0.   4.   2.   4.   6.   3.]
 [  1.   4.   7.   1.   1.   5.   1.   6.   0.   5.   1.   1.   5.   4.
    0.   4.   0.   2.   1.   1.]
 [  2.   2.   2.   4.   4.   3.   4.   1.   4.   0.   2.   1.   4.   5.
    3.   0.   2.   5.   4.   5.]
 [  6.   4.   6.   3.   2.   3.   1.   6.   2.   3.   2.   2.   3.   3.
    2.   4.   2.   1.   5.   0.]
 [  0.   2.   1.   1.   1.   3.   2.   2.   1.   9.   1.   6.   0.   3.
    3.   6.   1.   4.   5.   4.]
 [  1.   2.   1.   4.   5.   1.   1.   0.   6.   0.   2.   1.   5.   2.
    3.   3.   4.   2.   4.   1.]
 [  1.   0.   0.   3.   5.   3.   4.   2.   1.   3.   3.   8.   0.   1.
    0.   8.   5.   6.   2.   7.]
 [  0.   0.   3.   3.   2.   6.   0.   4.   1.   3.   4.   5.   0.   2.
    0.   4.   3.   5.   1.   0.]
 [  0.   1.   1.   1.   3.   1.   0.   4.   0.   5.   3.   4.   0.   1.
    0.   7.   3.   2.   0.   4.]
 [  0.   2.   1.   1.   3.   0.   0.   0.   3.   4.   3.   6.   0.   2.
    0.   4.   5.   6.   0.  11.]
 [  3.   1.   3.   2.   4.   4.   7.   3.   0.   2.   3.   7.   2.   5.
    1.   3.   2.   3.   1.   5.]
 [  1.   2.   2.   1.   1.   4.   4.   4.   1.   2.   5.   2.   4.   0.
    3.   2.   1.   6.   2.   4.]
 [  0.   0.   1.   2.   3.   3.   1.   1.   0.   3.   1.   3.   2.   0.
    2.   4.   5.   2.   2.   2.]
 [  2.   2.   4.   2.   3.   3.   1.   2.   4.   3.   2.   1.   1.   2.
    2.   4.   4.   1.   2.   2.]]
[[0 0]
 [0 0]
 [0 1]
 [0 1]
 [1 0]
 [0 0]
 [1 0]
 [0 0]
 [0 0]
 [1 1]
 [1 0]
 [1 0]
 [0 1]
 [1 1]
 [0 0]
 [0 0]
 [0 0]
 [0 1]
 [0 0]
 [0 1]
 [0 1]
 [1 1]
 [0 0]
 [1 0]
 [1 1]
 [0 0]
 [0 0]
 [1 1]
 [0 0]
 [1 1]
 [1 1]
 [0 1]
 [0 0]
 [1 0]
 [0 1]
 [0 0]
 [0 1]
 [0 0]
 [0 0]
 [0 1]
 [0 1]
 [1 0]
 [0 0]
 [0 0]
 [0 0]
 [0 1]
 [0 0]
 [0 1]
 [0 0]
 [0 0]
 [1 1]
 [1 0]
 [1 1]
 [0 0]
 [0 1]
 [0 0]
 [0 1]
 [0 1]
 [0 1]
 [1 1]
 [0 0]
 [1 1]
 [0 0]
 [0 1]
 [0 0]
 [0 1]
 [0 1]
 [0 0]
 [0 1]
 [0 0]
 [0 0]
 [0 0]
 [0 0]
 [1 1]
 [0 0]
 [0 1]
 [0 0]
 [0 0]
 [0 0]
 [0 0]
 [1 1]
 [0 1]
 [0 0]
 [1 1]
 [0 1]
 [1 0]
 [0 1]
 [0 0]
 [0 0]
 [0 0]
 [0 1]
 [0 0]
 [1 1]
 [0 1]
 [1 0]
 [1 0]
 [0 1]
 [0 0]
 [1 1]
 [0 0]]

In [56]:
a = np.random.rand(100)

In [58]:
b = np.random.rand(100)

In [59]:
%time euclidean(a,b)


CPU times: user 702 µs, sys: 4 µs, total: 706 µs
Wall time: 50.5 ms
Out[59]:
4.065469531638643

In [62]:
def dist(a,b):
    return np.sqrt(np.dot(a, a) - 2 * np.dot(a, b) + np.dot(b, b))

In [96]:
a = np.zeros([2,9])

In [97]:
b = np.zeros([2,10])

In [99]:
np.hstack([a,b]).shape


Out[99]:
(2, 19)

In [ ]: